Disallow textureStore in vertex shader tests

Writable storage textures cannot be used in vertex shaders, as such, the
`textureStore` builtin should only be allowed in compute and fragment
shaders. This change fixes tests that would fail once validation
against usage of writable storage buffers and textures in vertex shaders
is added to Tint.

The manually modified file in this change is src/tint/lang/wgsl/wgsl.def.

The rest of the changes were created with:
./tools/run gen
./tools/run tests --generate-expected test/tint/builtins/gen/literal/textureStore/
./tools/run tests --generate-expected test/tint/builtins/gen/var/textureStore

A unittest in StorageTextureValidationTests.cpp was also manually fixed up to account for earlier detection of the error.

Bug: 344846829
Change-Id: I68ad65a78c853e3d50e3333d6e2b00f48c0e48e8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/192941
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Natalie Chouinard <chouinard@google.com>
diff --git a/src/dawn/tests/unittests/validation/StorageTextureValidationTests.cpp b/src/dawn/tests/unittests/validation/StorageTextureValidationTests.cpp
index a20d502..fd85649 100644
--- a/src/dawn/tests/unittests/validation/StorageTextureValidationTests.cpp
+++ b/src/dawn/tests/unittests/validation/StorageTextureValidationTests.cpp
@@ -186,19 +186,13 @@
 TEST_F(StorageTextureValidationTests, RenderPipeline) {
     // Write-only storage textures cannot be declared in a vertex shader.
     {
-        wgpu::ShaderModule vsModule = utils::CreateShaderModule(device, R"(
+        ASSERT_DEVICE_ERROR(utils::CreateShaderModule(device, R"(
             @group(0) @binding(0) var image0 : texture_storage_2d<rgba8unorm, write>;
             @vertex
             fn main(@builtin(vertex_index) vertex_index : u32) -> @builtin(position) vec4f {
                 textureStore(image0, vec2i(i32(vertex_index), 0), vec4f(1.0, 0.0, 0.0, 1.0));
                 return vec4f(0.0);
-            })");
-
-        utils::ComboRenderPipelineDescriptor descriptor;
-        descriptor.layout = nullptr;
-        descriptor.vertex.module = vsModule;
-        descriptor.cFragment.module = mDefaultFSModule;
-        ASSERT_DEVICE_ERROR(device.CreateRenderPipeline(&descriptor));
+            })"));
     }
 
     // Write-only storage textures can be declared in a fragment shader.
diff --git a/src/tint/lang/wgsl/intrinsic/data.cc b/src/tint/lang/wgsl/intrinsic/data.cc
index 73a8ff4..41db746 100644
--- a/src/tint/lang/wgsl/intrinsic/data.cc
+++ b/src/tint/lang/wgsl/intrinsic/data.cc
@@ -6460,7 +6460,7 @@
   },
   {
     /* [144] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
@@ -6471,7 +6471,7 @@
   },
   {
     /* [145] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
@@ -6482,7 +6482,7 @@
   },
   {
     /* [146] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
@@ -6493,7 +6493,7 @@
   },
   {
     /* [147] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
@@ -6504,7 +6504,7 @@
   },
   {
     /* [148] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
@@ -6515,7 +6515,7 @@
   },
   {
     /* [149] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
@@ -6526,7 +6526,7 @@
   },
   {
     /* [150] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
@@ -6537,7 +6537,7 @@
   },
   {
     /* [151] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
@@ -6548,7 +6548,7 @@
   },
   {
     /* [152] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
@@ -6559,7 +6559,7 @@
   },
   {
     /* [153] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
@@ -6570,7 +6570,7 @@
   },
   {
     /* [154] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
@@ -6581,7 +6581,7 @@
   },
   {
     /* [155] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
diff --git a/src/tint/lang/wgsl/wgsl.def b/src/tint/lang/wgsl/wgsl.def
index 240dcb8..a51bf30 100644
--- a/src/tint/lang/wgsl/wgsl.def
+++ b/src/tint/lang/wgsl/wgsl.def
@@ -547,18 +547,18 @@
 @must_use fn textureSampleLevel[A: iu32, L: iu32](texture: texture_depth_cube_array,sampler: sampler, coords: vec3<f32>, array_index: A, level: L) -> f32
 @must_use fn textureSampleBaseClampToEdge(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 @must_use fn textureSampleBaseClampToEdge(texture: texture_external, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
-fn textureStore[C: iu32, F: f32_texel_format, W: writable](texture: texture_storage_1d<F, W>, coords: C, value: vec4<f32>)
-fn textureStore[C: iu32, F: f32_texel_format, W: writable](texture: texture_storage_2d<F, W>, coords: vec2<C>, value: vec4<f32>)
-fn textureStore[C: iu32, F: f32_texel_format, W: writable, A: iu32](texture: texture_storage_2d_array<F, W>, coords: vec2<C>, array_index: A, value: vec4<f32>)
-fn textureStore[C: iu32, F: f32_texel_format, W: writable](texture: texture_storage_3d<F, W>, coords: vec3<C>, value: vec4<f32>)
-fn textureStore[C: iu32, F: i32_texel_format, W: writable](texture: texture_storage_1d<F, W>, coords: C, value: vec4<i32>)
-fn textureStore[C: iu32, F: i32_texel_format, W: writable](texture: texture_storage_2d<F, W>, coords: vec2<C>, value: vec4<i32>)
-fn textureStore[C: iu32, F: i32_texel_format, W: writable, A: iu32](texture: texture_storage_2d_array<F, W>, coords: vec2<C>, array_index: A, value: vec4<i32>)
-fn textureStore[C: iu32, F: i32_texel_format, W: writable](texture: texture_storage_3d<F, W>, coords: vec3<C>, value: vec4<i32>)
-fn textureStore[C: iu32, F: u32_texel_format, W: writable](texture: texture_storage_1d<F, W>, coords: C, value: vec4<u32>)
-fn textureStore[C: iu32, F: u32_texel_format, W: writable](texture: texture_storage_2d<F, W>, coords: vec2<C>, value: vec4<u32>)
-fn textureStore[C: iu32, F: u32_texel_format, W: writable, A: iu32](texture: texture_storage_2d_array<F, W>, coords: vec2<C>, array_index: A, value: vec4<u32>)
-fn textureStore[C: iu32, F: u32_texel_format, W: writable](texture: texture_storage_3d<F, W>, coords: vec3<C>, value: vec4<u32>)
+@stage("fragment", "compute") fn textureStore[C: iu32, F: f32_texel_format, W: writable](texture: texture_storage_1d<F, W>, coords: C, value: vec4<f32>)
+@stage("fragment", "compute") fn textureStore[C: iu32, F: f32_texel_format, W: writable](texture: texture_storage_2d<F, W>, coords: vec2<C>, value: vec4<f32>)
+@stage("fragment", "compute") fn textureStore[C: iu32, F: f32_texel_format, W: writable, A: iu32](texture: texture_storage_2d_array<F, W>, coords: vec2<C>, array_index: A, value: vec4<f32>)
+@stage("fragment", "compute") fn textureStore[C: iu32, F: f32_texel_format, W: writable](texture: texture_storage_3d<F, W>, coords: vec3<C>, value: vec4<f32>)
+@stage("fragment", "compute") fn textureStore[C: iu32, F: i32_texel_format, W: writable](texture: texture_storage_1d<F, W>, coords: C, value: vec4<i32>)
+@stage("fragment", "compute") fn textureStore[C: iu32, F: i32_texel_format, W: writable](texture: texture_storage_2d<F, W>, coords: vec2<C>, value: vec4<i32>)
+@stage("fragment", "compute") fn textureStore[C: iu32, F: i32_texel_format, W: writable, A: iu32](texture: texture_storage_2d_array<F, W>, coords: vec2<C>, array_index: A, value: vec4<i32>)
+@stage("fragment", "compute") fn textureStore[C: iu32, F: i32_texel_format, W: writable](texture: texture_storage_3d<F, W>, coords: vec3<C>, value: vec4<i32>)
+@stage("fragment", "compute") fn textureStore[C: iu32, F: u32_texel_format, W: writable](texture: texture_storage_1d<F, W>, coords: C, value: vec4<u32>)
+@stage("fragment", "compute") fn textureStore[C: iu32, F: u32_texel_format, W: writable](texture: texture_storage_2d<F, W>, coords: vec2<C>, value: vec4<u32>)
+@stage("fragment", "compute") fn textureStore[C: iu32, F: u32_texel_format, W: writable, A: iu32](texture: texture_storage_2d_array<F, W>, coords: vec2<C>, array_index: A, value: vec4<u32>)
+@stage("fragment", "compute") fn textureStore[C: iu32, F: u32_texel_format, W: writable](texture: texture_storage_3d<F, W>, coords: vec3<C>, value: vec4<u32>)
 @must_use fn textureLoad[T: fiu32, C: iu32, L: iu32](texture: texture_1d<T>, coords: C, level: L) -> vec4<T>
 @must_use fn textureLoad[T: fiu32, C: iu32, L: iu32](texture: texture_2d<T>, coords: vec2<C>, level: L) -> vec4<T>
 @must_use fn textureLoad[T: fiu32, C: iu32, A: iu32, L: iu32](texture: texture_2d_array<T>, coords: vec2<C>, array_index: A, level: L) -> vec4<T>
diff --git a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl
index 041fc2a..6a7db8c 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_00ca64() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_00ca64();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_00ca64();
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 dc8009a..3277e4e 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_00ca64();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_00ca64();
   return;
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 dc8009a..3277e4e 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_00ca64();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_00ca64();
   return;
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 5f7e16f..a432c11 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_00ca64() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_00ca64();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 b76f874..ea8010a 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_00ca64(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u);
+void textureStore_00ca64(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_00ca64(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_00ca64(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_00ca64(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_00ca64(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_00ca64(tint_symbol_2);
   return;
 }
 
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 c32fe12..10f94d5 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_00ca64 "textureStore_00ca64"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_00ca64 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_00ca64
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_00ca64
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_00ca64
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_00ca64
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 33756f1..12b0d05 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_00ca64();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_00ca64();
diff --git a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl
index 3a49a95..fae7dbd 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_0148bd() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0148bd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0148bd();
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 17e2744..8a0583d 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0148bd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0148bd();
   return;
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 17e2744..8a0583d 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0148bd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0148bd();
   return;
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 2f4ebc2..245729c 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_0148bd() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_0148bd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 30137a6..bb37659 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0148bd(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1);
+void textureStore_0148bd(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_0148bd(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0148bd(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0148bd(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0148bd(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0148bd(tint_symbol_2);
   return;
 }
 
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 9992d94..e0c4dca 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0148bd "textureStore_0148bd"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_0148bd = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_0148bd
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_0148bd
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_0148bd
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_0148bd
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 6b62b18..99f56a5 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0148bd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0148bd();
diff --git a/test/tint/builtins/gen/literal/textureStore/031506.wgsl b/test/tint/builtins/gen/literal/textureStore/031506.wgsl
index aa398db..5d587ff 100644
--- a/test/tint/builtins/gen/literal/textureStore/031506.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/031506.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_031506() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_031506();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_031506();
diff --git a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.dxc.hlsl
index 14f8433..3178282 100644
--- a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_031506();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_031506();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.fxc.hlsl
index 14f8433..3178282 100644
--- a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_031506();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_031506();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.glsl
index 11eae11..a4e8774 100644
--- a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2D arg_0;
-void textureStore_031506() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_031506();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.msl
index 478b947..89545d7 100644
--- a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_031506(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_031506(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_031506(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_031506(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_031506(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_031506(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_031506(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.spvasm
index f1a8e70..2cdb2a0 100644
--- a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_031506 "textureStore_031506"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_031506 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_031506 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_031506
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_031506
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_031506
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_031506
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_031506
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.wgsl
index 9e4d7b8..806345d 100644
--- a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_031506();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_031506();
diff --git a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl
index 8a50180..c61b9cb 100644
--- a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_036d0e() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_036d0e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_036d0e();
diff --git a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.dxc.hlsl
index d7e8741..b3046c8 100644
--- a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_036d0e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_036d0e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.fxc.hlsl
index d7e8741..b3046c8 100644
--- a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_036d0e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_036d0e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.glsl
index c9c22b1..aa8c760 100644
--- a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_036d0e() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_036d0e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.msl
index b118db2..dfd0d6f 100644
--- a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_036d0e(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_036d0e(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_036d0e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_036d0e(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_036d0e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_036d0e(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_036d0e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.spvasm
index 2b7eace..a7a5a90 100644
--- a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_036d0e "textureStore_036d0e"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_036d0e = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_036d0e = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_036d0e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_036d0e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_036d0e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_036d0e
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_036d0e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.wgsl
index ef5a165..4a44720 100644
--- a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_036d0e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_036d0e();
diff --git a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl
index b6a6d16..bc48443 100644
--- a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_03e7a0() {
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_03e7a0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_03e7a0();
diff --git a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.dxc.hlsl
index f8067e1..edba2b5 100644
--- a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_03e7a0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_03e7a0();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.fxc.hlsl
index f8067e1..edba2b5 100644
--- a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_03e7a0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_03e7a0();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.glsl
index 728fe06..e59ee04 100644
--- a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_03e7a0() {
-  imageStore(arg_0, ivec2(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_03e7a0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.msl
index eae40a7..2752ec1 100644
--- a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_03e7a0(texture2d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_03e7a0(texture2d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_03e7a0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_03e7a0(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_03e7a0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_03e7a0(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_03e7a0(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.spvasm
index 6810996..5813773 100644
--- a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_03e7a0 "textureStore_03e7a0"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_03e7a0 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_03e7a0 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_03e7a0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_03e7a0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_03e7a0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_03e7a0
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_03e7a0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.wgsl
index a486b5d..3f317f1 100644
--- a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_03e7a0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_03e7a0();
diff --git a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl
index 9d3ec02..20fd1fb 100644
--- a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_042b06() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_042b06();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_042b06();
diff --git a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.dxc.hlsl
index f2a30b5..b9e32c3 100644
--- a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_042b06();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_042b06();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.fxc.hlsl
index f2a30b5..b9e32c3 100644
--- a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_042b06();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_042b06();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.glsl
index f9eafee..e51acad 100644
--- a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_042b06() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_042b06();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.msl
index ae6e4e0..1fe69f8 100644
--- a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_042b06(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_042b06(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_042b06(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_042b06(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_042b06(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_042b06(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_042b06(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.spvasm
index bda73a4d..b5d4acf 100644
--- a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.spvasm
@@ -1,76 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_042b06 "textureStore_042b06"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_042b06 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_042b06 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_042b06
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_042b06
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_042b06
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_042b06
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_042b06
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.wgsl
index e861beb..495da91 100644
--- a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_042b06();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_042b06();
diff --git a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl
index 75eb6d1..81a9f45 100644
--- a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_052a4e() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_052a4e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_052a4e();
diff --git a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.dxc.hlsl
index d439e2e..63e991d 100644
--- a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_052a4e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_052a4e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.fxc.hlsl
index d439e2e..63e991d 100644
--- a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_052a4e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_052a4e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.glsl
index 50e3e18..22b63ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_052a4e() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_052a4e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.msl
index 03beffc..9c9217c 100644
--- a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_052a4e(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u)); tint_symbol_1.fence();
+void textureStore_052a4e(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_052a4e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_052a4e(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_052a4e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_052a4e(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_052a4e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.spvasm
index 6c84b0f..17634c5 100644
--- a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.spvasm
@@ -1,71 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_052a4e "textureStore_052a4e"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_052a4e = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_052a4e = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_052a4e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_052a4e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_052a4e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_052a4e
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_052a4e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.wgsl
index db212d0..d58668e 100644
--- a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_052a4e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_052a4e();
diff --git a/test/tint/builtins/gen/literal/textureStore/053664.wgsl b/test/tint/builtins/gen/literal/textureStore/053664.wgsl
index bff05a4..0121e6c 100644
--- a/test/tint/builtins/gen/literal/textureStore/053664.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/053664.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_053664() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_053664();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_053664();
diff --git a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.dxc.hlsl
index fc95d11..4bba4eb 100644
--- a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_053664();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_053664();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.fxc.hlsl
index fc95d11..4bba4eb 100644
--- a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_053664();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_053664();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.glsl
index ef367b7..987b9bb 100644
--- a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_053664() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_053664();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.msl
index dc14ee8..161b665 100644
--- a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_053664(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_053664(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_053664(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_053664(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_053664(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_053664(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_053664(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.spvasm
index 375a57d..46fd809 100644
--- a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.spvasm
@@ -1,76 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_053664 "textureStore_053664"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_053664 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_053664 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_053664
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_053664
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_053664
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_053664
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_053664
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.wgsl
index 9fced3c..3fbf2e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_053664();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_053664();
diff --git a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl
index c03a120..5f56f12 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_05ce15() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_05ce15();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_05ce15();
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 0d4e700..59e4e6b 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_05ce15();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_05ce15();
   return;
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 0d4e700..59e4e6b 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_05ce15();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_05ce15();
   return;
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 826e22f..2bfbc71 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_05ce15() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_05ce15();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e99c331..9693fdb 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_05ce15(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)));
+void textureStore_05ce15(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_05ce15(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_05ce15(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_05ce15(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_05ce15(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_05ce15(tint_symbol_2);
   return;
 }
 
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 250c8eb..183676e 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_05ce15 "textureStore_05ce15"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_05ce15 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_05ce15
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_05ce15
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_05ce15
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_05ce15
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 e5609b3..b68fa09 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_05ce15();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_05ce15();
diff --git a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl
index 237a395..4a5f3be 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_064c7f() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_064c7f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_064c7f();
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 385b96b..5eb42fe 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_064c7f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_064c7f();
   return;
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 385b96b..5eb42fe 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_064c7f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_064c7f();
   return;
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 9165cd3..7b8e4de 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_064c7f(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)));
+void textureStore_064c7f(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_064c7f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_064c7f(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_064c7f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_064c7f(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_064c7f(tint_symbol_2);
   return;
 }
 
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 52c7fa7..83e7568 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.spvasm
@@ -1,74 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_064c7f "textureStore_064c7f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_064c7f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_064c7f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_064c7f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_064c7f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_064c7f
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 f177a6a..b8afde1 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_064c7f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_064c7f();
diff --git a/test/tint/builtins/gen/literal/textureStore/068641.wgsl b/test/tint/builtins/gen/literal/textureStore/068641.wgsl
index 2a3ddb2..dc4f73a 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_068641() {
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_068641();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_068641();
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 8a44d9c..2b7ea41 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_068641();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_068641();
   return;
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 8a44d9c..2b7ea41 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_068641();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_068641();
   return;
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 46bbcf8..5999670 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_068641() {
-  imageStore(arg_0, ivec3(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_068641();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 9ad2a24..0128244 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_068641(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(int3(1)));
+void textureStore_068641(texture3d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_068641(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_068641(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_068641(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_068641(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_068641(tint_symbol_2);
   return;
 }
 
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 40498a9..ee30b71 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_068641 "textureStore_068641"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_068641 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_068641
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_068641
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_068641
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_068641
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 5e4245b..56142fe 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_068641();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_068641();
diff --git a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl
index e51ff93..3f787b0 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_06e49c() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_06e49c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_06e49c();
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 491a567..87c70a3 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_06e49c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_06e49c();
   return;
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 491a567..87c70a3 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_06e49c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_06e49c();
   return;
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 53e2cce..64ae795 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_06e49c() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_06e49c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 ac1d739..796441c 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_06e49c(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u);
+void textureStore_06e49c(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_06e49c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_06e49c(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_06e49c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_06e49c(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_06e49c(tint_symbol_2);
   return;
 }
 
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 d9bd1c1..08c2b17 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_06e49c "textureStore_06e49c"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %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
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_06e49c = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_06e49c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_06e49c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_06e49c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_06e49c
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = 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 382a2c7..c4c23ae 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_06e49c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_06e49c();
diff --git a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl
index 8187201..eb57a3d 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_07548b() {
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_07548b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_07548b();
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 93cdf8c..4cc4f44 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_07548b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_07548b();
   return;
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 93cdf8c..4cc4f44 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_07548b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_07548b();
   return;
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 0ab5679..9106e36 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage3D arg_0;
-void textureStore_07548b() {
-  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_07548b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 3547e963..576b92f 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_07548b(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(uint3(1u)));
+void textureStore_07548b(texture3d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_07548b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_07548b(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_07548b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_07548b(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_07548b(tint_symbol_2);
   return;
 }
 
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 d700ee4..1257b01 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_07548b "textureStore_07548b"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_07548b = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_07548b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_07548b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_07548b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_07548b
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 d182a1c..af2503b 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_07548b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_07548b();
diff --git a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl
index bf310aa..7dd50c2 100644
--- a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_09e4d5() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_09e4d5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_09e4d5();
diff --git a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.dxc.hlsl
index 3a0ecba..54ffd37 100644
--- a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_09e4d5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_09e4d5();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.fxc.hlsl
index 3a0ecba..54ffd37 100644
--- a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_09e4d5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_09e4d5();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.glsl
index e10eca7..9774e02 100644
--- a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_09e4d5() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_09e4d5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.msl
index e3acca6..9aec378 100644
--- a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_09e4d5(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u)); tint_symbol_1.fence();
+void textureStore_09e4d5(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_09e4d5(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_09e4d5(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_09e4d5(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_09e4d5(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_09e4d5(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.spvasm
index 9e30fa9..16fe97d 100644
--- a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.spvasm
@@ -1,71 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_09e4d5 "textureStore_09e4d5"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_09e4d5 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_09e4d5 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_09e4d5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_09e4d5
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_09e4d5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_09e4d5
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_09e4d5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.wgsl
index 0d5ae0e..fd6d705 100644
--- a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_09e4d5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_09e4d5();
diff --git a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl
index 6db3fa6..a2b1dbb 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_0a1a79() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0a1a79();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0a1a79();
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 dc3a8db..c47ac32 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0a1a79();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0a1a79();
   return;
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 dc3a8db..c47ac32 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0a1a79();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0a1a79();
   return;
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 c4f4ba1..417dc2f 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_0a1a79() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_0a1a79();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e912738..e8107d8 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0a1a79(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1);
+void textureStore_0a1a79(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_0a1a79(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0a1a79(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0a1a79(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0a1a79(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0a1a79(tint_symbol_2);
   return;
 }
 
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 2cd4c0c..9679011 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0a1a79 "textureStore_0a1a79"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_0a1a79 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_0a1a79
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_0a1a79
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_0a1a79
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_0a1a79
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 d30c2de..4614d9a 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0a1a79();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0a1a79();
diff --git a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl
index c33be4a..201ea49 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_0ad124() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0ad124();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0ad124();
diff --git a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.dxc.hlsl
index a069f49..56b9e43 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0ad124();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0ad124();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.fxc.hlsl
index a069f49..56b9e43 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0ad124();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0ad124();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.msl
index 5aacfa2..33442dd 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0ad124(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1)); tint_symbol_1.fence();
+void textureStore_0ad124(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_0ad124(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0ad124(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0ad124(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0ad124(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0ad124(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.spvasm
index ece7679..598bdff 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0ad124 "textureStore_0ad124"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_0ad124 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_0ad124 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_0ad124
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_0ad124
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_0ad124
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_0ad124
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_0ad124
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.wgsl
index 0ee22bd..6daa9e9 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0ad124();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0ad124();
diff --git a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl
index c3cd8a8..cc39530 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_0ade9a() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0ade9a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0ade9a();
diff --git a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.dxc.hlsl
index 69c958e..4898e4a 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0ade9a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0ade9a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.fxc.hlsl
index 69c958e..4898e4a 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0ade9a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0ade9a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.msl
index f8d041f..02c9e7b 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0ade9a(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_0ade9a(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_0ade9a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0ade9a(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0ade9a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0ade9a(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0ade9a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.spvasm
index 29500b2..7654869 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.spvasm
@@ -1,78 +1,49 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0ade9a "textureStore_0ade9a"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %28 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_0ade9a = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_0ade9a = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpCompositeConstruct %v3uint %15 %16 %uint_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_0ade9a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_0ade9a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_0ade9a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_0ade9a
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_0ade9a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.wgsl
index 30e92f2..32c8080 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0ade9a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0ade9a();
diff --git a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl
index da95762..f876d29 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_0af6b5() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0af6b5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0af6b5();
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 df81f9a..3eb48b3 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0af6b5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0af6b5();
   return;
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 df81f9a..3eb48b3 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0af6b5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0af6b5();
   return;
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 5e2f2e0..592637c 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2D arg_0;
-void textureStore_0af6b5() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_0af6b5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 14def46..679dddb 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0af6b5(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)));
+void textureStore_0af6b5(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_0af6b5(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0af6b5(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0af6b5(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0af6b5(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0af6b5(tint_symbol_2);
   return;
 }
 
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 7a12a77..5523f18 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0af6b5 "textureStore_0af6b5"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_0af6b5 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_0af6b5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_0af6b5
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_0af6b5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_0af6b5
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 85bfa83..67628f7 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0af6b5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0af6b5();
diff --git a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl
index fc36815..2b85efc 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_0c3dff() {
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0c3dff();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0c3dff();
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 0a0db5a..7ab1a8a 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0c3dff();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0c3dff();
   return;
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 0a0db5a..7ab1a8a 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0c3dff();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0c3dff();
   return;
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 c031cfa..d5c77e9 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_0c3dff() {
-  imageStore(arg_0, ivec2(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_0c3dff();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 99752da..02cf857 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0c3dff(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)));
+void textureStore_0c3dff(texture2d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_0c3dff(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0c3dff(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0c3dff(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0c3dff(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0c3dff(tint_symbol_2);
   return;
 }
 
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 241c800..967b078 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0c3dff "textureStore_0c3dff"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_0c3dff = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_0c3dff
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_0c3dff
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_0c3dff
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_0c3dff
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 58787ad..f8cde9c 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0c3dff();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0c3dff();
diff --git a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl
index e8a8e07..b27b783 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_0cc825() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0cc825();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0cc825();
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 8aea713..e0caa5d 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0cc825();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0cc825();
   return;
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 8aea713..e0caa5d 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0cc825();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0cc825();
   return;
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 f70f592..4ecc3d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_0cc825() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_0cc825();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 3157ac4..72d0fa8 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0cc825(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1);
+void textureStore_0cc825(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_0cc825(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0cc825(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0cc825(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0cc825(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0cc825(tint_symbol_2);
   return;
 }
 
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 d1d4490..196b2d6 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0cc825 "textureStore_0cc825"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_0cc825 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_0cc825
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_0cc825
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_0cc825
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_0cc825
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 a7b6aeb..84848dd 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0cc825();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0cc825();
diff --git a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl
index c863877..07a3c7d 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_0ff97a() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0ff97a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0ff97a();
diff --git a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.dxc.hlsl
index e60e836..7312828 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0ff97a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0ff97a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.fxc.hlsl
index e60e836..7312828 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0ff97a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0ff97a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.glsl
index 27f5097..035e9c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2DArray arg_0;
-void textureStore_0ff97a() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_0ff97a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.msl
index 6f80d5d..155d551 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0ff97a(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_0ff97a(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_0ff97a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0ff97a(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0ff97a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0ff97a(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0ff97a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.spvasm
index 8356eb0..3917bc2 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.spvasm
@@ -1,76 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0ff97a "textureStore_0ff97a"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_0ff97a = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_0ff97a = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_0ff97a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_0ff97a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_0ff97a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_0ff97a
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_0ff97a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.wgsl
index c984239..c67f8c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0ff97a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0ff97a();
diff --git a/test/tint/builtins/gen/literal/textureStore/101325.wgsl b/test/tint/builtins/gen/literal/textureStore/101325.wgsl
index 25a677d..2872832 100644
--- a/test/tint/builtins/gen/literal/textureStore/101325.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/101325.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_101325() {
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_101325();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_101325();
diff --git a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.dxc.hlsl
index dd40df2..be2e4ff 100644
--- a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_101325();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_101325();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.fxc.hlsl
index dd40df2..be2e4ff 100644
--- a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_101325();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_101325();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.glsl
index a835ef8..c5a35b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_101325() {
-  imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_101325();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.msl
index ede5222..5225dee 100644
--- a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_101325(texture3d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_101325(texture3d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_101325(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_101325(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_101325(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_101325(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_101325(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.spvasm
index 4dd95a6..e54dd34 100644
--- a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_101325 "textureStore_101325"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %13 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_101325 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_101325 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_101325
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_101325
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_101325
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_101325
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_101325
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.wgsl
index 5d28542..3196c71 100644
--- a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_101325();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_101325();
diff --git a/test/tint/builtins/gen/literal/textureStore/102722.wgsl b/test/tint/builtins/gen/literal/textureStore/102722.wgsl
index f68ce75..aee2a0e 100644
--- a/test/tint/builtins/gen/literal/textureStore/102722.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/102722.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_102722() {
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_102722();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_102722();
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 6905a0d..c1c1840 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_102722();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_102722();
   return;
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 6905a0d..c1c1840 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_102722();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_102722();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.glsl
index de0c52c..d4fe117 100644
--- a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_102722() {
-  imageStore(arg_0, ivec2(1, 0), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_102722();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 f2c85aa..93e8e72 100644
--- a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_102722(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1));
+void textureStore_102722(texture1d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_102722(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_102722(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_102722(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_102722(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_102722(tint_symbol_2);
   return;
 }
 
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 98830a8..7e43e7b 100644
--- a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_102722 "textureStore_102722"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
      %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 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_102722 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_102722
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_102722
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_102722
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_102722
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 7853e25..a5f2460 100644
--- a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_102722();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_102722();
diff --git a/test/tint/builtins/gen/literal/textureStore/145061.wgsl b/test/tint/builtins/gen/literal/textureStore/145061.wgsl
index 1d7e454..55496dd 100644
--- a/test/tint/builtins/gen/literal/textureStore/145061.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/145061.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_145061() {
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_145061();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_145061();
diff --git a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.dxc.hlsl
index 98bfed7..b220f8e 100644
--- a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_145061();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_145061();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.fxc.hlsl
index 98bfed7..b220f8e 100644
--- a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_145061();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_145061();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.glsl
index fe25997..b4b4a03 100644
--- a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_145061() {
-  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_145061();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.msl
index a9ee83d..b061d65 100644
--- a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_145061(texture2d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_145061(texture2d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_145061(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_145061(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_145061(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_145061(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_145061(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.spvasm
index f46c984..74908f0 100644
--- a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_145061 "textureStore_145061"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %13 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_145061 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_145061 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_145061
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_145061
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_145061
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_145061
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_145061
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.wgsl
index 5a626bb..e93284b 100644
--- a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_145061();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_145061();
diff --git a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl
index 9b1523d..a7e1330 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_158cf0() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_158cf0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_158cf0();
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 e6430d9..5baa89b 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_158cf0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_158cf0();
   return;
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 e6430d9..5baa89b 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_158cf0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_158cf0();
   return;
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 da52c3e..3e01c2b 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_158cf0() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_158cf0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 820b78d..0783cc3c 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_158cf0(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u);
+void textureStore_158cf0(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_158cf0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_158cf0(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_158cf0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_158cf0(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_158cf0(tint_symbol_2);
   return;
 }
 
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 e41ab4c..e3a3759 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.spvasm
@@ -1,78 +1,49 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_158cf0 "textureStore_158cf0"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_158cf0 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpCompositeConstruct %v3uint %15 %16 %uint_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_158cf0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_158cf0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_158cf0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_158cf0
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = 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 49944b6..9ccf11a 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_158cf0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_158cf0();
diff --git a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl
index f66eeaa..3b65db3c 100644
--- a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_178e69() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_178e69();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_178e69();
diff --git a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.dxc.hlsl
index 905fde4..8060333 100644
--- a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_178e69();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_178e69();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.fxc.hlsl
index 905fde4..8060333 100644
--- a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_178e69();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_178e69();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.glsl
index ecc10fa..7e9c02d 100644
--- a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_178e69() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_178e69();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.msl
index e7491c6..ac0177c 100644
--- a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_178e69(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1)); tint_symbol_1.fence();
+void textureStore_178e69(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_178e69(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_178e69(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_178e69(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_178e69(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_178e69(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.spvasm
index 3baabe1..486e6cb 100644
--- a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.spvasm
@@ -1,71 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_178e69 "textureStore_178e69"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_178e69 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_178e69 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_178e69
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_178e69
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_178e69
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_178e69
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_178e69
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.wgsl
index e4fefdf..9ceb6b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_178e69();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_178e69();
diff --git a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl
index 579e688..8a30007 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_1839f2() {
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1839f2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1839f2();
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 9f84e46..671811a 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1839f2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1839f2();
   return;
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 9f84e46..671811a 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1839f2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1839f2();
   return;
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 a2c1388..aea5b39 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_1839f2() {
-  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_1839f2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 669e5fc..a3a5447 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1839f2(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)));
+void textureStore_1839f2(texture2d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_1839f2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1839f2(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1839f2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1839f2(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1839f2(tint_symbol_2);
   return;
 }
 
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 c8d32a3..0afd1af 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1839f2 "textureStore_1839f2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_1839f2 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_1839f2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_1839f2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_1839f2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_1839f2
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 971a7bb..c3cd7fe 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1839f2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1839f2();
diff --git a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl
index 9d605bb..54f7155 100644
--- a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_195d1b() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_195d1b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_195d1b();
diff --git a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.dxc.hlsl
index 210e8f2..7f2cd8c 100644
--- a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_195d1b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_195d1b();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.fxc.hlsl
index 210e8f2..7f2cd8c 100644
--- a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_195d1b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_195d1b();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.glsl
index 025245a..1520d01 100644
--- a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image3D arg_0;
-void textureStore_195d1b() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_195d1b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.msl
index 98875b2..35d835d 100644
--- a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_195d1b(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_195d1b(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_195d1b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_195d1b(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_195d1b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_195d1b(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_195d1b(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.spvasm
index bc9e1ea..4f02e24 100644
--- a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_195d1b "textureStore_195d1b"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_195d1b = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_195d1b = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_195d1b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_195d1b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_195d1b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_195d1b
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_195d1b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.wgsl
index e834640..4b7341b 100644
--- a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_195d1b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_195d1b();
diff --git a/test/tint/builtins/gen/literal/textureStore/197637.wgsl b/test/tint/builtins/gen/literal/textureStore/197637.wgsl
index 39789bf..622442e 100644
--- a/test/tint/builtins/gen/literal/textureStore/197637.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/197637.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_197637() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_197637();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_197637();
diff --git a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.dxc.hlsl
index 12cf0e8..b551d31 100644
--- a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_197637();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_197637();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.fxc.hlsl
index 12cf0e8..b551d31 100644
--- a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_197637();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_197637();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.glsl
index 3221193..47b71c5 100644
--- a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_197637() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_197637();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.msl
index 945923d..bc22b14 100644
--- a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_197637(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1)); tint_symbol_1.fence();
+void textureStore_197637(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_197637(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_197637(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_197637(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_197637(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_197637(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.spvasm
index 7dccde5..7c06182 100644
--- a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.spvasm
@@ -1,71 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_197637 "textureStore_197637"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_197637 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_197637 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_197637
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_197637
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_197637
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_197637
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_197637
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.wgsl
index 58683ca..ed3b995 100644
--- a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_197637();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_197637();
diff --git a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl
index 2d49463..8d64347 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_1a264d() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1a264d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1a264d();
diff --git a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.dxc.hlsl
index 96479dd..234982a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1a264d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1a264d();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.fxc.hlsl
index 96479dd..234982a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1a264d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1a264d();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.msl
index 36e1e8d..c457468 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1a264d(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1)));
+void textureStore_1a264d(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_1a264d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1a264d(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1a264d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1a264d(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1a264d(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.spvasm
index 2d195be..44dd6a0 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.spvasm
@@ -1,74 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1a264d "textureStore_1a264d"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_1a264d = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_1a264d = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_1a264d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_1a264d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_1a264d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_1a264d
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_1a264d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.wgsl
index 6e4e18c..fcd84f5 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1a264d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1a264d();
diff --git a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl
index 696fb16..960150e 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_1a6c0b() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1a6c0b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1a6c0b();
diff --git a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.dxc.hlsl
index dbca815..8ea4e0c 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1a6c0b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1a6c0b();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.fxc.hlsl
index dbca815..8ea4e0c 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1a6c0b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1a6c0b();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.msl
index 46fc6d4..1351d04 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1a6c0b(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_1a6c0b(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_1a6c0b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1a6c0b(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1a6c0b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1a6c0b(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1a6c0b(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.spvasm
index d2efc47..e0b35ed 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1a6c0b "textureStore_1a6c0b"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_1a6c0b = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %24 = OpCompositeExtract %uint %23 0
-         %25 = OpCompositeExtract %uint %23 1
-         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_1a6c0b = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_1a6c0b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_1a6c0b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_1a6c0b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_1a6c0b
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_1a6c0b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.wgsl
index 21be13d..2fae467 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1a6c0b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1a6c0b();
diff --git a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl
index a511e81..1bc7808 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_1a7d35() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1a7d35();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1a7d35();
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 564aef6..ce093ce 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1a7d35();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1a7d35();
   return;
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 564aef6..ce093ce 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1a7d35();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1a7d35();
   return;
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 e1a3dae..33a1906 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_1a7d35() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_1a7d35();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 9cac721..36c2489 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1a7d35(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u);
+void textureStore_1a7d35(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_1a7d35(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1a7d35(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1a7d35(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1a7d35(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1a7d35(tint_symbol_2);
   return;
 }
 
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 cea0b97..0ca9aea 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1a7d35 "textureStore_1a7d35"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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
-         %24 = OpCompositeExtract %uint %23 0
-         %25 = OpCompositeExtract %uint %23 1
-         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_1a7d35 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_1a7d35
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_1a7d35
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_1a7d35
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_1a7d35
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 c8483a6..3981401 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1a7d35();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1a7d35();
diff --git a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl
index c1e960f..21a48be 100644
--- a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_1af236() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1af236();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1af236();
diff --git a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.dxc.hlsl
index 5359c9a..07f581a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1af236();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1af236();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.fxc.hlsl
index 5359c9a..07f581a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1af236();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1af236();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.glsl
index 3d2baa4..cb3fdc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_1af236() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_1af236();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.msl
index 4a2218d..4981979 100644
--- a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1af236(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_1af236(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_1af236(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1af236(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1af236(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1af236(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1af236(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.spvasm
index 2ee138d..7ac31d4 100644
--- a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.spvasm
@@ -1,76 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1af236 "textureStore_1af236"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_1af236 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_1af236 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_1af236
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_1af236
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_1af236
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_1af236
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_1af236
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.wgsl
index 886ee9d..375d3563 100644
--- a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1af236();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1af236();
diff --git a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl
index b2606b8..25793a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_1bbd08() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1bbd08();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1bbd08();
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 f4ab761..a6151bc 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1bbd08();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1bbd08();
   return;
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 f4ab761..a6151bc 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1bbd08();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1bbd08();
   return;
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 d7665da..5cc51ac 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_1bbd08() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_1bbd08();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 81cad88..416394c 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1bbd08(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1)));
+void textureStore_1bbd08(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_1bbd08(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1bbd08(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1bbd08(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1bbd08(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1bbd08(tint_symbol_2);
   return;
 }
 
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 20e4438..571ba43 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1bbd08 "textureStore_1bbd08"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_1bbd08 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_1bbd08
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_1bbd08
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_1bbd08
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_1bbd08
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 889b97a..e0b6b57 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1bbd08();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1bbd08();
diff --git a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl
index 6ba6c74..dd29446 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_1c02e7() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1c02e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1c02e7();
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 5c4017d..10136b9 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1c02e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1c02e7();
   return;
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 5c4017d..10136b9 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1c02e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1c02e7();
   return;
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 e2c7d77..65a6567 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_1c02e7() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_1c02e7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 4229a33..bfe0c1b 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1c02e7(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1);
+void textureStore_1c02e7(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_1c02e7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1c02e7(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1c02e7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1c02e7(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1c02e7(tint_symbol_2);
   return;
 }
 
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 f70ea85..3d9aaac 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.spvasm
@@ -1,78 +1,49 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1c02e7 "textureStore_1c02e7"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_1c02e7 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpCompositeConstruct %v3int %15 %16 %int_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_1c02e7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_1c02e7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_1c02e7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_1c02e7
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = 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 81cd3a7..0361e75 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1c02e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1c02e7();
diff --git a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl
index c2b1848..70fc199 100644
--- a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_1dc954() {
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1dc954();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1dc954();
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 a07d093..ea4d780 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1dc954();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1dc954();
   return;
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 a07d093..ea4d780 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1dc954();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1dc954();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.glsl
index 7e7b9e6..6b59162 100644
--- a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_1dc954() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_1dc954();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 780f957..0a6070e 100644
--- a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1dc954(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1u));
+void textureStore_1dc954(texture1d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_1dc954(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1dc954(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1dc954(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1dc954(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1dc954(tint_symbol_2);
   return;
 }
 
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 9d7f783..4556940 100644
--- a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1dc954 "textureStore_1dc954"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
       %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 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_1dc954 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_1dc954
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_1dc954
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_1dc954
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_1dc954
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 09a5154..a45cd7f 100644
--- a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1dc954();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1dc954();
diff --git a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl
index 3082017..06dbc75 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_1e20f2() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1e20f2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1e20f2();
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 f8bf460..f2527e8 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1e20f2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1e20f2();
   return;
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 f8bf460..f2527e8 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1e20f2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1e20f2();
   return;
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 29e5533..7c4406c 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2D arg_0;
-void textureStore_1e20f2() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_1e20f2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 485e4e6..423f54e 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1e20f2(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)));
+void textureStore_1e20f2(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_1e20f2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1e20f2(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1e20f2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1e20f2(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1e20f2(tint_symbol_2);
   return;
 }
 
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 9b00b86..bf21915 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1e20f2 "textureStore_1e20f2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_1e20f2 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_1e20f2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_1e20f2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_1e20f2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_1e20f2
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 61a9732..23e39ba 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1e20f2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1e20f2();
diff --git a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl
index 79b7352..4a8d605 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_1e79f0() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1e79f0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1e79f0();
diff --git a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.dxc.hlsl
index 872d399..b944d2b 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1e79f0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1e79f0();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.fxc.hlsl
index 872d399..b944d2b 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1e79f0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1e79f0();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.msl
index 146af0c..5617581 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1e79f0(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1);
+void textureStore_1e79f0(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_1e79f0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1e79f0(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1e79f0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1e79f0(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1e79f0(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.spvasm
index 69b5229..71531a9 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.spvasm
@@ -1,78 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1e79f0 "textureStore_1e79f0"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_1e79f0 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_1e79f0 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_1e79f0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_1e79f0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_1e79f0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_1e79f0
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_1e79f0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.wgsl
index bc5dccc..92d80a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1e79f0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1e79f0();
diff --git a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl
index cdcba9a..c221a10 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_1e9fbd() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1e9fbd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1e9fbd();
diff --git a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.dxc.hlsl
index bbe33ee..8651dde 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1e9fbd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1e9fbd();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.fxc.hlsl
index bbe33ee..8651dde 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1e9fbd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1e9fbd();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.glsl
index f6a85e5..f800756 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2DArray arg_0;
-void textureStore_1e9fbd() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_1e9fbd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.msl
index 90836ff..4ada9d2 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1e9fbd(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_1e9fbd(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_1e9fbd(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1e9fbd(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1e9fbd(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1e9fbd(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1e9fbd(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.spvasm
index b77b00f..b46a255 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1e9fbd "textureStore_1e9fbd"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_1e9fbd = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_1e9fbd = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_1e9fbd
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_1e9fbd
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_1e9fbd
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_1e9fbd
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_1e9fbd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.wgsl
index b5c6d33..e57b6b2 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1e9fbd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1e9fbd();
diff --git a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl
index e2d002a..d6f326e 100644
--- a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_1efc36() {
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1efc36();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1efc36();
diff --git a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.dxc.hlsl
index 720b537..9f65bc5 100644
--- a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1efc36();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1efc36();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.fxc.hlsl
index 720b537..9f65bc5 100644
--- a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1efc36();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1efc36();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.glsl
index ffb22b8..a2c4274 100644
--- a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_1efc36() {
-  imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_1efc36();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.msl
index 0f4313a..e91b06a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1efc36(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(uint3(1u)));
+void textureStore_1efc36(texture3d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_1efc36(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1efc36(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1efc36(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1efc36(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1efc36(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.spvasm
index 26c6b84..823e1c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1efc36 "textureStore_1efc36"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %13 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_1efc36 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_1efc36 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_1efc36
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_1efc36
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_1efc36
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_1efc36
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_1efc36
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.wgsl
index 84bbf25..a826134 100644
--- a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1efc36();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1efc36();
diff --git a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl
index 7ea12ea..3a8e804 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_1f1ef8() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1f1ef8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1f1ef8();
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 82b3232..0f92baa 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1f1ef8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1f1ef8();
   return;
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 82b3232..0f92baa 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1f1ef8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1f1ef8();
   return;
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 8625582..292f08f 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_1f1ef8() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_1f1ef8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 d517025..59164ae 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1f1ef8(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u);
+void textureStore_1f1ef8(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_1f1ef8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1f1ef8(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1f1ef8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1f1ef8(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1f1ef8(tint_symbol_2);
   return;
 }
 
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 a92e0d4..06d471d 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1f1ef8 "textureStore_1f1ef8"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_1f1ef8 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_1f1ef8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_1f1ef8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_1f1ef8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_1f1ef8
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 10e652a..a44358e 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1f1ef8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1f1ef8();
diff --git a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl
index 5c0da56..7fd2beb 100644
--- a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_1fef04() {
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1fef04();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1fef04();
diff --git a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.dxc.hlsl
index 728e02e..34c8d6e 100644
--- a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1fef04();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1fef04();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.fxc.hlsl
index 728e02e..34c8d6e 100644
--- a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1fef04();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1fef04();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.glsl
index c13ba22..91d89ea 100644
--- a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2D arg_0;
-void textureStore_1fef04() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_1fef04();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.msl
index 3f991da..3001218 100644
--- a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1fef04(texture1d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1u)); tint_symbol_1.fence();
+void textureStore_1fef04(texture1d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_1fef04(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1fef04(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1fef04(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1fef04(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1fef04(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.spvasm
index 04cc321..dfc3392 100644
--- a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1fef04 "textureStore_1fef04"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
       %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_1fef04 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_1fef04 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_1fef04
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_1fef04
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_1fef04
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_1fef04
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_1fef04
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.wgsl
index 52c2560..665f949 100644
--- a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1fef04();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1fef04();
diff --git a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl
index b7cba75..ba922c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_2046db() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2046db();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2046db();
diff --git a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.dxc.hlsl
index 058a724..c9cae33 100644
--- a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2046db();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2046db();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.fxc.hlsl
index 058a724..c9cae33 100644
--- a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2046db();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2046db();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.glsl
index 0d767e0..750aedf 100644
--- a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_2046db() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_2046db();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.msl
index bf0d868..eee8077 100644
--- a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2046db(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_2046db(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_2046db(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2046db(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2046db(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2046db(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2046db(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.spvasm
index c779f16..20c9551 100644
--- a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.spvasm
@@ -1,79 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2046db "textureStore_2046db"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_2046db = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_2046db = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2046db
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_2046db
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_2046db
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_2046db
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_2046db
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.wgsl
index b1b02b6..dd12cb6 100644
--- a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2046db();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2046db();
diff --git a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl
index 187528a..c5603ad 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_207fdd() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_207fdd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_207fdd();
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 8177657..9ea8bdf 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_207fdd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_207fdd();
   return;
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 8177657..9ea8bdf 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_207fdd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_207fdd();
   return;
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 afed74d..7cb4649 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
-void textureStore_207fdd() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_207fdd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 c050074..c44714b 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_207fdd(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u)));
+void textureStore_207fdd(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_207fdd(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_207fdd(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_207fdd(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_207fdd(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_207fdd(tint_symbol_2);
   return;
 }
 
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 2007bb4..0dffac2 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_207fdd "textureStore_207fdd"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_207fdd = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_207fdd
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_207fdd
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_207fdd
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_207fdd
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 7687fee..517d859 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_207fdd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_207fdd();
diff --git a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl
index c496608..8bafb1c 100644
--- a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_2173fd() {
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2173fd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2173fd();
diff --git a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.dxc.hlsl
index d77fbec..3363229 100644
--- a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2173fd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2173fd();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.fxc.hlsl
index d77fbec..3363229 100644
--- a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2173fd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2173fd();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.glsl
index 3c60754..7dbc17a 100644
--- a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_2173fd() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_2173fd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.msl
index 4b1683c..2b0783b 100644
--- a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2173fd(texture1d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1u)); tint_symbol_1.fence();
+void textureStore_2173fd(texture1d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_2173fd(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2173fd(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2173fd(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2173fd(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2173fd(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.spvasm
index abce760..ecfcf5a 100644
--- a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.spvasm
@@ -1,72 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2173fd "textureStore_2173fd"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %22 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_2173fd = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %21
+         %13 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_2173fd = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_2173fd
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_2173fd
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_2173fd
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_2173fd
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_2173fd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.wgsl
index 9b521d5..8b3e611 100644
--- a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2173fd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2173fd();
diff --git a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl
index e41d0b8..178e0eb 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_22d955() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_22d955();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_22d955();
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 a8c26ed..d118ac3 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_22d955();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_22d955();
   return;
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 a8c26ed..d118ac3 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_22d955();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_22d955();
   return;
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 f9444a1..15eb8e2 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_22d955() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_22d955();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 78e57e3..7c25786 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_22d955(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1);
+void textureStore_22d955(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_22d955(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_22d955(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_22d955(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_22d955(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_22d955(tint_symbol_2);
   return;
 }
 
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 a87e0bc..9e18417 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_22d955 "textureStore_22d955"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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
-         %24 = OpCompositeExtract %int %23 0
-         %25 = OpCompositeExtract %int %23 1
-         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_22d955 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_22d955
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_22d955
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_22d955
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_22d955
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 c7b43ee..38c72a2 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_22d955();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_22d955();
diff --git a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl
index c3f104f..cda668c 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_22f045() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_22f045();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_22f045();
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 3cce08e..f95c743 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_22f045();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_22f045();
   return;
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 3cce08e..f95c743 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_22f045();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_22f045();
   return;
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 6cfea86..56ec682 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_22f045() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_22f045();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 69dfed2..906ba12 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_22f045(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u);
+void textureStore_22f045(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_22f045(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_22f045(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_22f045(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_22f045(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_22f045(tint_symbol_2);
   return;
 }
 
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 2e7da5d..74bbc8d 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_22f045 "textureStore_22f045"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %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
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_22f045 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_22f045
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_22f045
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_22f045
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_22f045
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = 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 2b2abf6..54fe255 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_22f045();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_22f045();
diff --git a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl
index 9cf0212..08c2f0a 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_2383fc() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2383fc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2383fc();
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 1d5ff14..5466aa9 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2383fc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2383fc();
   return;
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 1d5ff14..5466aa9 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2383fc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2383fc();
   return;
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 bbcaa38..15e4807 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_2383fc() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_2383fc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 f521f18..343fc1a 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2383fc(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1);
+void textureStore_2383fc(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_2383fc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2383fc(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2383fc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2383fc(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2383fc(tint_symbol_2);
   return;
 }
 
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 5de3a69..174f982 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2383fc "textureStore_2383fc"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_2383fc = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2383fc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_2383fc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_2383fc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_2383fc
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 e0a6d6f..d2ed79b 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2383fc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2383fc();
diff --git a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl
index 62b899c..60756ca 100644
--- a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_24e6b7() {
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_24e6b7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_24e6b7();
diff --git a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.dxc.hlsl
index 4f15cae..7a48b8c 100644
--- a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_24e6b7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_24e6b7();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.fxc.hlsl
index 4f15cae..7a48b8c 100644
--- a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_24e6b7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_24e6b7();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.glsl
index e099cc6..ac05eff 100644
--- a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage3D arg_0;
-void textureStore_24e6b7() {
-  imageStore(arg_0, ivec3(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_24e6b7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.msl
index 89e7fbf..ed68e86 100644
--- a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_24e6b7(texture3d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_24e6b7(texture3d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_24e6b7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_24e6b7(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_24e6b7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_24e6b7(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_24e6b7(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.spvasm
index 124bde0..ff9e075 100644
--- a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_24e6b7 "textureStore_24e6b7"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %13 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_24e6b7 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_24e6b7 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_24e6b7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_24e6b7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_24e6b7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_24e6b7
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_24e6b7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.wgsl
index 081c2e3..a9c3caa 100644
--- a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_24e6b7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_24e6b7();
diff --git a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl
index 7391824..1c76078 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_258ab0() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_258ab0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_258ab0();
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 5c17c7d..fc5baad 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_258ab0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_258ab0();
   return;
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 5c17c7d..fc5baad 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_258ab0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_258ab0();
   return;
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 ff75a3a..8ccbf6f 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_258ab0() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_258ab0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 c1acf06..cb52ef2 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_258ab0(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1);
+void textureStore_258ab0(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_258ab0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_258ab0(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_258ab0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_258ab0(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_258ab0(tint_symbol_2);
   return;
 }
 
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 2d466a6..f01dfc7 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_258ab0 "textureStore_258ab0"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %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
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_258ab0 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_258ab0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_258ab0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_258ab0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_258ab0
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = 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 c4d6c00..03d865c 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_258ab0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_258ab0();
diff --git a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl
index f644ef6..68b07dc 100644
--- a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_26a26d() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_26a26d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_26a26d();
diff --git a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.dxc.hlsl
index 92309d6..3a6340e 100644
--- a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_26a26d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_26a26d();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.fxc.hlsl
index 92309d6..3a6340e 100644
--- a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_26a26d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_26a26d();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.glsl
index ab825a7..9026223 100644
--- a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_26a26d() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_26a26d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.msl
index de9ee2f..3453f0b 100644
--- a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_26a26d(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u)); tint_symbol_1.fence();
+void textureStore_26a26d(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_26a26d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_26a26d(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_26a26d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_26a26d(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_26a26d(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.spvasm
index e2fc398..f5f0f5b 100644
--- a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.spvasm
@@ -1,71 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_26a26d "textureStore_26a26d"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_26a26d = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_26a26d = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_26a26d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_26a26d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_26a26d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_26a26d
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_26a26d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.wgsl
index 040a7d0..af0b972 100644
--- a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_26a26d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_26a26d();
diff --git a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl
index bb0f3d5..451bc99 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_26bf70() {
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_26bf70();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_26bf70();
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 10b6bd1..34fa69d 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_26bf70();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_26bf70();
   return;
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 10b6bd1..34fa69d 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_26bf70();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_26bf70();
   return;
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 eae8ec2..07aeb04 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_26bf70() {
-  imageStore(arg_0, ivec2(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_26bf70();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 c206178..870b3ae 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_26bf70(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)));
+void textureStore_26bf70(texture2d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_26bf70(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_26bf70(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_26bf70(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_26bf70(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_26bf70(tint_symbol_2);
   return;
 }
 
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 ff6c49d..43df94b 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_26bf70 "textureStore_26bf70"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_26bf70 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_26bf70
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_26bf70
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_26bf70
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_26bf70
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 f17425a..5bcc19e 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_26bf70();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_26bf70();
diff --git a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl
index 0dac650..2b78c96 100644
--- a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_27063a() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_27063a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_27063a();
diff --git a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.dxc.hlsl
index 6228f38..5ee0293 100644
--- a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_27063a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_27063a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.fxc.hlsl
index 6228f38..5ee0293 100644
--- a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_27063a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_27063a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.glsl
index 593d271..c7b07ae 100644
--- a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_27063a() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_27063a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.msl
index 9dcbbc9..462faa8 100644
--- a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_27063a(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1);
+void textureStore_27063a(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_27063a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_27063a(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_27063a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_27063a(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_27063a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.spvasm
index ea4bcb9..834de17 100644
--- a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_27063a "textureStore_27063a"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_27063a = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_27063a = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_27063a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_27063a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_27063a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_27063a
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_27063a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.wgsl
index 447c4b1..c88e64a 100644
--- a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_27063a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_27063a();
diff --git a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl
index 0495dd2..f4fd6bd 100644
--- a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_272f5a() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_272f5a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_272f5a();
diff --git a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.dxc.hlsl
index c366ad1..6360980 100644
--- a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_272f5a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_272f5a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.fxc.hlsl
index c366ad1..6360980 100644
--- a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_272f5a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_272f5a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.msl
index a9c8998..4e32e0e 100644
--- a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_272f5a(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_272f5a(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_272f5a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_272f5a(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_272f5a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_272f5a(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_272f5a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.spvasm
index 75e2705..f63ef8c 100644
--- a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_272f5a "textureStore_272f5a"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_272f5a = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_272f5a = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_272f5a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_272f5a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_272f5a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_272f5a
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_272f5a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.wgsl
index bbe8755..78750c9 100644
--- a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_272f5a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_272f5a();
diff --git a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl
index 220140b..ccfe128 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_2796b4() {
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2796b4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2796b4();
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 b4d7c10..9308a2a 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2796b4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2796b4();
   return;
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 b4d7c10..9308a2a 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2796b4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2796b4();
   return;
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 c60e59c..cfa2b66 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2796b4(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(int3(1)));
+void textureStore_2796b4(texture3d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_2796b4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2796b4(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2796b4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2796b4(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2796b4(tint_symbol_2);
   return;
 }
 
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 0325344..32f981f 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2796b4 "textureStore_2796b4"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %13 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_2796b4 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_2796b4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_2796b4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2796b4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_2796b4
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 f358f55..46c903b 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2796b4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2796b4();
diff --git a/test/tint/builtins/gen/literal/textureStore/285218.wgsl b/test/tint/builtins/gen/literal/textureStore/285218.wgsl
index a5efd3b..f69dd0d 100644
--- a/test/tint/builtins/gen/literal/textureStore/285218.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/285218.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_285218() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_285218();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_285218();
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 65b7a84..ad89527 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_285218();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_285218();
   return;
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 65b7a84..ad89527 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_285218();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_285218();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.glsl
index 2c20769..e4abf36 100644
--- a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_285218() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_285218();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 f7d44c3..c696f0b 100644
--- a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_285218(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u));
+void textureStore_285218(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_285218(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_285218(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_285218(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_285218(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_285218(tint_symbol_2);
   return;
 }
 
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 1443184..46262aa 100644
--- a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_285218 "textureStore_285218"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %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 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_285218 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_285218
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_285218
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_285218
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_285218
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 71a3111..7e0fa00 100644
--- a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_285218();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_285218();
diff --git a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl
index f2f3697..6fec867 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_28a7ec() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_28a7ec();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_28a7ec();
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 c5fd0c3..d3ad3fe 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_28a7ec();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_28a7ec();
   return;
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 c5fd0c3..d3ad3fe 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_28a7ec();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_28a7ec();
   return;
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 3ed24a7..5019ccf 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_28a7ec() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_28a7ec();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 9b26b6b..12dd382 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_28a7ec(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1);
+void textureStore_28a7ec(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_28a7ec(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_28a7ec(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_28a7ec(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_28a7ec(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_28a7ec(tint_symbol_2);
   return;
 }
 
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 65dac0c..34916ca 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_28a7ec "textureStore_28a7ec"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_28a7ec = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_28a7ec
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_28a7ec
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_28a7ec
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_28a7ec
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 14ce9f8..97619f5 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_28a7ec();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_28a7ec();
diff --git a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl
index 58d1505..c59b054 100644
--- a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_28e109() {
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_28e109();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_28e109();
diff --git a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.dxc.hlsl
index c423cb7..b366789 100644
--- a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_28e109();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_28e109();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.fxc.hlsl
index c423cb7..b366789 100644
--- a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_28e109();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_28e109();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.glsl
index 09f385b..88e877d 100644
--- a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_28e109() {
-  imageStore(arg_0, ivec2(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_28e109();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.msl
index 5e9a42d..dafc420 100644
--- a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_28e109(texture2d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_28e109(texture2d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_28e109(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_28e109(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_28e109(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_28e109(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_28e109(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.spvasm
index 11ab280..23f677c 100644
--- a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_28e109 "textureStore_28e109"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %13 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_28e109 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_28e109 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_28e109
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_28e109
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_28e109
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_28e109
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_28e109
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.wgsl
index be62b8f..8122949 100644
--- a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_28e109();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_28e109();
diff --git a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl
index 5fecca8..272bf7e 100644
--- a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_2a60c9() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2a60c9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2a60c9();
diff --git a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.dxc.hlsl
index aef86ce..8c12726 100644
--- a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2a60c9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2a60c9();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.fxc.hlsl
index aef86ce..8c12726 100644
--- a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2a60c9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2a60c9();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.glsl
index aca2c83..9d52686 100644
--- a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_2a60c9() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_2a60c9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.msl
index c83a122..da916b6 100644
--- a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2a60c9(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_2a60c9(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_2a60c9(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2a60c9(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2a60c9(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2a60c9(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2a60c9(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.spvasm
index 73624c0..f8ed1e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.spvasm
@@ -1,79 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2a60c9 "textureStore_2a60c9"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_2a60c9 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %24 = OpCompositeExtract %uint %23 0
-         %25 = OpCompositeExtract %uint %23 1
-         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_2a60c9 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_2a60c9
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_2a60c9
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_2a60c9
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_2a60c9
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_2a60c9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.wgsl
index 787417c..1ebaaea 100644
--- a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2a60c9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2a60c9();
diff --git a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl
index c9d46d0..aebc380 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_2ac6c7() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2ac6c7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2ac6c7();
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 582b06d..9000b7f 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2ac6c7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2ac6c7();
   return;
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 582b06d..9000b7f 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2ac6c7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2ac6c7();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.glsl
index acb4faf..79965b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2D arg_0;
-void textureStore_2ac6c7() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_2ac6c7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 a975f3d..8546993 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2ac6c7(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1));
+void textureStore_2ac6c7(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_2ac6c7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2ac6c7(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2ac6c7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2ac6c7(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2ac6c7(tint_symbol_2);
   return;
 }
 
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 dc7dbdb..db89b6c 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2ac6c7 "textureStore_2ac6c7"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %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 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_2ac6c7 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_2ac6c7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_2ac6c7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_2ac6c7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2ac6c7
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 8abb7ce..ec6e222 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2ac6c7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2ac6c7();
diff --git a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl
index e85558a..a8a78ec 100644
--- a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_2addd6() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2addd6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2addd6();
diff --git a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.dxc.hlsl
index 28adc73..6e3c702 100644
--- a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2addd6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2addd6();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.fxc.hlsl
index 28adc73..6e3c702 100644
--- a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2addd6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2addd6();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.glsl
index 52c45b1..e55037c 100644
--- a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_2addd6() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_2addd6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.msl
index 9b4ab47..17077ad 100644
--- a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2addd6(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_2addd6(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_2addd6(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2addd6(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2addd6(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2addd6(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2addd6(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.spvasm
index 64314e9..990daa9 100644
--- a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.spvasm
@@ -1,77 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2addd6 "textureStore_2addd6"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %28 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_2addd6 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_2addd6 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpCompositeConstruct %v3uint %15 %16 %uint_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_2addd6
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_2addd6
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_2addd6
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_2addd6
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_2addd6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.wgsl
index fd69cab..6dd5e5b 100644
--- a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2addd6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2addd6();
diff --git a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl
index 3bd6aa7..37ce68e 100644
--- a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_2c76db() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2c76db();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2c76db();
diff --git a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.dxc.hlsl
index 180a149..f2737c2 100644
--- a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2c76db();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2c76db();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.fxc.hlsl
index 180a149..f2737c2 100644
--- a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2c76db();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2c76db();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.glsl
index caa71d8..6a3e044 100644
--- a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_2c76db() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_2c76db();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.msl
index 033584d..dd56fe2 100644
--- a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2c76db(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_2c76db(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_2c76db(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2c76db(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2c76db(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2c76db(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2c76db(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.spvasm
index ba75f16..f4b50e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2c76db "textureStore_2c76db"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_2c76db = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_2c76db = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_2c76db
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_2c76db
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_2c76db
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_2c76db
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_2c76db
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.wgsl
index 3eec65a..85411d0 100644
--- a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2c76db();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2c76db();
diff --git a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl
index e4d7fce..effb7e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_2d2835() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2d2835();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2d2835();
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 c5a3711..9ba7e4a 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2d2835();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2d2835();
   return;
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 c5a3711..9ba7e4a 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2d2835();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2d2835();
   return;
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 7b4f3ea..5705de4 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2d2835(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u);
+void textureStore_2d2835(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_2d2835(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2d2835(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2d2835(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2d2835(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2d2835(tint_symbol_2);
   return;
 }
 
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 5b7d6a7..a1e2d0d 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.spvasm
@@ -1,78 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2d2835 "textureStore_2d2835"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_2d2835 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_2d2835
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_2d2835
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_2d2835
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_2d2835
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 ce653b2..b478a27 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2d2835();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2d2835();
diff --git a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl
index 2694c82..1b8c2aa 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_2e4245() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2e4245();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2e4245();
diff --git a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.dxc.hlsl
index 4140b2f..0c8290b 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2e4245();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2e4245();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.fxc.hlsl
index 4140b2f..0c8290b 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2e4245();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2e4245();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.glsl
index 1ec4fb2..1133adb 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_2e4245() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_2e4245();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.msl
index 85232bf..936f427 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2e4245(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)));
+void textureStore_2e4245(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_2e4245(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2e4245(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2e4245(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2e4245(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2e4245(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.spvasm
index 4fa753b..b112b62 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2e4245 "textureStore_2e4245"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_2e4245 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_2e4245 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_2e4245
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_2e4245
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_2e4245
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_2e4245
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_2e4245
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.wgsl
index ae3343d..7a13c7e 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2e4245();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2e4245();
diff --git a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl
index 883f99f..a499872 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_2e512f() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2e512f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2e512f();
diff --git a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.dxc.hlsl
index f133a86..89f125d 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2e512f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2e512f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.fxc.hlsl
index f133a86..89f125d 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2e512f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2e512f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.msl
index d1e439a..aafc01e 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2e512f(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_2e512f(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_2e512f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2e512f(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2e512f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2e512f(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2e512f(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.spvasm
index effeb34..144e4f5 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2e512f "textureStore_2e512f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_2e512f = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_2e512f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_2e512f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_2e512f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_2e512f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_2e512f
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_2e512f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.wgsl
index 9017285..f617bf0 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2e512f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2e512f();
diff --git a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl
index 2c53ac7..abb4663 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_2e6102() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2e6102();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2e6102();
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 1ed70e2..9512dac 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2e6102();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2e6102();
   return;
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 1ed70e2..9512dac 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2e6102();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2e6102();
   return;
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 36976f6..26d96e1 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_2e6102() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_2e6102();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e876971..4a5d467 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2e6102(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)));
+void textureStore_2e6102(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_2e6102(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2e6102(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2e6102(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2e6102(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2e6102(tint_symbol_2);
   return;
 }
 
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 1fb04e4..e3eed86 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2e6102 "textureStore_2e6102"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_2e6102 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_2e6102
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_2e6102
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_2e6102
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_2e6102
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 374522a..560948c 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2e6102();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2e6102();
diff --git a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl
index 32665e2..375773b 100644
--- a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_2eb2a4() {
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2eb2a4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2eb2a4();
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 139844a..f8ec794 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2eb2a4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2eb2a4();
   return;
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 139844a..f8ec794 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2eb2a4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2eb2a4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.glsl
index 6e8ab7e..8678ccd 100644
--- a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_2eb2a4() {
-  imageStore(arg_0, ivec2(1, 0), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_2eb2a4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 47ffde0..f2a16cc 100644
--- a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2eb2a4(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1));
+void textureStore_2eb2a4(texture1d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_2eb2a4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2eb2a4(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2eb2a4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2eb2a4(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2eb2a4(tint_symbol_2);
   return;
 }
 
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 bef9eb9..a0d1ad2 100644
--- a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2eb2a4 "textureStore_2eb2a4"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
      %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 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_2eb2a4 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_2eb2a4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_2eb2a4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2eb2a4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_2eb2a4
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 b7ff47b..ad3e436 100644
--- a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2eb2a4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2eb2a4();
diff --git a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl
index 55e5120..b4491d0 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_2ed2a3() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2ed2a3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2ed2a3();
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 62d9659..b8690ef 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2ed2a3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2ed2a3();
   return;
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 62d9659..b8690ef 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2ed2a3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2ed2a3();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.glsl
index 7669678..c48f0d7 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_2ed2a3() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_2ed2a3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 04c9cda..723c69e 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2ed2a3(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1));
+void textureStore_2ed2a3(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_2ed2a3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2ed2a3(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2ed2a3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2ed2a3(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2ed2a3(tint_symbol_2);
   return;
 }
 
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 b97d0ad..fe49b72 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2ed2a3 "textureStore_2ed2a3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %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 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_2ed2a3 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_2ed2a3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_2ed2a3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_2ed2a3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2ed2a3
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 599c722..db59c4a 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2ed2a3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2ed2a3();
diff --git a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl
index eb11ed8..9163a9f 100644
--- a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_2f29ea() {
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2f29ea();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2f29ea();
diff --git a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.dxc.hlsl
index 875c145..3f0d3d9 100644
--- a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2f29ea();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2f29ea();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.fxc.hlsl
index 875c145..3f0d3d9 100644
--- a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2f29ea();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2f29ea();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.glsl
index 8219ab5..e3facc1 100644
--- a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_2f29ea() {
-  imageStore(arg_0, ivec2(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_2f29ea();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.msl
index 020ed2d..4fd8f1b 100644
--- a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2f29ea(texture2d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_2f29ea(texture2d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_2f29ea(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2f29ea(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2f29ea(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2f29ea(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2f29ea(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.spvasm
index ebc88e0..1dca529 100644
--- a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2f29ea "textureStore_2f29ea"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %13 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_2f29ea = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_2f29ea = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_2f29ea
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_2f29ea
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2f29ea
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_2f29ea
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_2f29ea
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.wgsl
index a571ee1..4ea8f48 100644
--- a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2f29ea();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2f29ea();
diff --git a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl
index 5892044..7c4755e 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_30b0b0() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_30b0b0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_30b0b0();
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 7d7a48a..654cee4 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_30b0b0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_30b0b0();
   return;
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 7d7a48a..654cee4 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_30b0b0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_30b0b0();
   return;
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 88797a1..4427c28 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_30b0b0() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_30b0b0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 611742a..e6757b1 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_30b0b0(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u);
+void textureStore_30b0b0(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_30b0b0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_30b0b0(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_30b0b0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_30b0b0(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_30b0b0(tint_symbol_2);
   return;
 }
 
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 91e4a80..9474d45 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_30b0b0 "textureStore_30b0b0"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_30b0b0 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_30b0b0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_30b0b0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_30b0b0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_30b0b0
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 cf6003b..335d583 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_30b0b0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_30b0b0();
diff --git a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl
index 6a1f679..81f4689 100644
--- a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_312f27() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_312f27();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_312f27();
diff --git a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.dxc.hlsl
index 8859064..04087f5 100644
--- a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_312f27();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_312f27();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.fxc.hlsl
index 8859064..04087f5 100644
--- a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_312f27();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_312f27();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.glsl
index 5cae665..e25cd04 100644
--- a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2DArray arg_0;
-void textureStore_312f27() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_312f27();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.msl
index bb99603..4960a08 100644
--- a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_312f27(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_312f27(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_312f27(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_312f27(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_312f27(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_312f27(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_312f27(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.spvasm
index 89477fd..f2ce361c 100644
--- a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.spvasm
@@ -1,79 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_312f27 "textureStore_312f27"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_312f27 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_312f27 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_312f27
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_312f27
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_312f27
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_312f27
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_312f27
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.wgsl
index bcff990..22e380e 100644
--- a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_312f27();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_312f27();
diff --git a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl
index fed5ac2..e509c3e 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_31745b() {
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_31745b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_31745b();
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 8e70441..1cf6213 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_31745b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_31745b();
   return;
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 8e70441..1cf6213 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_31745b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_31745b();
   return;
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 a051a4d..19df560 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_31745b(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)));
+void textureStore_31745b(texture2d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_31745b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_31745b(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_31745b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_31745b(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_31745b(tint_symbol_2);
   return;
 }
 
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 9827d2d..301ff82 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_31745b "textureStore_31745b"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %13 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_31745b = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_31745b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_31745b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_31745b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_31745b
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 0652c26..7a9cb32 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_31745b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_31745b();
diff --git a/test/tint/builtins/gen/literal/textureStore/319029.wgsl b/test/tint/builtins/gen/literal/textureStore/319029.wgsl
index 80352f0..9090b95 100644
--- a/test/tint/builtins/gen/literal/textureStore/319029.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/319029.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_319029() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_319029();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_319029();
diff --git a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.dxc.hlsl
index c34c669..1fc8710 100644
--- a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_319029();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_319029();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.fxc.hlsl
index c34c669..1fc8710 100644
--- a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_319029();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_319029();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.glsl
index 27d6ff4..84a3fe2 100644
--- a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_319029() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_319029();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.msl
index 85ad3cb..85c3886 100644
--- a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_319029(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1);
+void textureStore_319029(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_319029(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_319029(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_319029(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_319029(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_319029(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.spvasm
index b21251d..1627ebf 100644
--- a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_319029 "textureStore_319029"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_319029 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_319029 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_319029
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_319029
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_319029
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_319029
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_319029
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.wgsl
index 23cee71..daaf9af 100644
--- a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_319029();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_319029();
diff --git a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl
index a8a9703..99147b6 100644
--- a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_32d3d6() {
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_32d3d6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_32d3d6();
diff --git a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.dxc.hlsl
index a2e3925..3463587 100644
--- a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_32d3d6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_32d3d6();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.fxc.hlsl
index a2e3925..3463587 100644
--- a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_32d3d6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_32d3d6();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.glsl
index 59b58d6..42c7043 100644
--- a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2D arg_0;
-void textureStore_32d3d6() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_32d3d6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.msl
index fa2fd75..1fc1cae 100644
--- a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_32d3d6(texture1d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1u)); tint_symbol_1.fence();
+void textureStore_32d3d6(texture1d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_32d3d6(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_32d3d6(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_32d3d6(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_32d3d6(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_32d3d6(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.spvasm
index 08c6001..73d13c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.spvasm
@@ -1,72 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_32d3d6 "textureStore_32d3d6"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %22 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_32d3d6 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %21
+         %13 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_32d3d6 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_32d3d6
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_32d3d6
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_32d3d6
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_32d3d6
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_32d3d6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.wgsl
index 0c7644a..bfa65f5 100644
--- a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_32d3d6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_32d3d6();
diff --git a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl
index 006d518..baa155d 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_32f368() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_32f368();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_32f368();
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 34d930b..41b6735 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_32f368();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_32f368();
   return;
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 34d930b..41b6735 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_32f368();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_32f368();
   return;
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 cf3eeb9..cc97237 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_32f368() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_32f368();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 40ee25c..1e47b77 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_32f368(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1);
+void textureStore_32f368(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_32f368(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_32f368(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_32f368(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_32f368(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_32f368(tint_symbol_2);
   return;
 }
 
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 26a37de..32c7bf3 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_32f368 "textureStore_32f368"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_32f368 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_32f368
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_32f368
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_32f368
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_32f368
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 cb63ff9..3137508 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_32f368();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_32f368();
diff --git a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl
index 41422d3..a974fd4 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_330b7c() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_330b7c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_330b7c();
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 36a219c..3915592 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_330b7c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_330b7c();
   return;
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 36a219c..3915592 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_330b7c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_330b7c();
   return;
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 5e22177..30853c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_330b7c() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_330b7c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 03f8eb3..4cc825f 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_330b7c(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u);
+void textureStore_330b7c(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_330b7c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_330b7c(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_330b7c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_330b7c(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_330b7c(tint_symbol_2);
   return;
 }
 
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 eb78ea6..e80afca 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_330b7c "textureStore_330b7c"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_330b7c = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_330b7c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_330b7c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_330b7c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_330b7c
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 f44f87a..c85d39d 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_330b7c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_330b7c();
diff --git a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl
index 7165eb4..5281d53 100644
--- a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_3310d3() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3310d3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3310d3();
diff --git a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.dxc.hlsl
index 84951a9..a6d1ac7 100644
--- a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3310d3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3310d3();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.fxc.hlsl
index 84951a9..a6d1ac7 100644
--- a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3310d3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3310d3();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.glsl
index a7dcdaa..93f0948 100644
--- a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_3310d3() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_3310d3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.msl
index 4adf7b5..23d5798 100644
--- a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3310d3(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_3310d3(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_3310d3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3310d3(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3310d3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3310d3(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3310d3(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.spvasm
index c9af60b..ff1bb53 100644
--- a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.spvasm
@@ -1,76 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3310d3 "textureStore_3310d3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_3310d3 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_3310d3 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_3310d3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_3310d3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_3310d3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_3310d3
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_3310d3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.wgsl
index 12e3375..0a988c0 100644
--- a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3310d3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3310d3();
diff --git a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl
index a95550d..b5dbdf0 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_331aee() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_331aee();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_331aee();
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 9ce11e1..4015504 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_331aee();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_331aee();
   return;
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 9ce11e1..4015504 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_331aee();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_331aee();
   return;
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 737d41c..3b2a52e 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image3D arg_0;
-void textureStore_331aee() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_331aee();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 14e276e..a5f4560 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_331aee(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1)));
+void textureStore_331aee(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_331aee(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_331aee(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_331aee(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_331aee(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_331aee(tint_symbol_2);
   return;
 }
 
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 8b4e49e..474128c 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_331aee "textureStore_331aee"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_331aee = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_331aee
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_331aee
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_331aee
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_331aee
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 40a206b..b4a13a8 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_331aee();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_331aee();
diff --git a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl
index f97c3a9..60a983a 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_33cec0() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_33cec0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_33cec0();
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 ef00d5b..976d4e8 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_33cec0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_33cec0();
   return;
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 ef00d5b..976d4e8 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_33cec0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_33cec0();
   return;
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 a4272fe..cc75da4 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_33cec0() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_33cec0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 7a12c75..7fadaf4 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_33cec0(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1);
+void textureStore_33cec0(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_33cec0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_33cec0(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_33cec0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_33cec0(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_33cec0(tint_symbol_2);
   return;
 }
 
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 0a3d4cd..88d73ec 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_33cec0 "textureStore_33cec0"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_33cec0 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_33cec0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_33cec0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_33cec0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_33cec0
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 b8abfcf..44acc1e 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_33cec0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_33cec0();
diff --git a/test/tint/builtins/gen/literal/textureStore/345332.wgsl b/test/tint/builtins/gen/literal/textureStore/345332.wgsl
index 4044cc3..f0791b5 100644
--- a/test/tint/builtins/gen/literal/textureStore/345332.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/345332.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_345332() {
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_345332();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_345332();
diff --git a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.dxc.hlsl
index 18f4d64..6bf184b 100644
--- a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_345332();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_345332();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.fxc.hlsl
index 18f4d64..6bf184b 100644
--- a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_345332();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_345332();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.glsl
index 8809f6a..61dc9a4 100644
--- a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_345332() {
-  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_345332();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.msl
index 620180e..b71c72c 100644
--- a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_345332(texture2d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_345332(texture2d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_345332(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_345332(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_345332(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_345332(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_345332(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.spvasm
index f125b3c..490f578 100644
--- a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_345332 "textureStore_345332"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %13 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_345332 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_345332 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_345332
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_345332
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_345332
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_345332
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_345332
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.wgsl
index d868090..0a656bd 100644
--- a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_345332();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_345332();
diff --git a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl
index 6d0d8ea..f9dc8fb 100644
--- a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_37eeef() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_37eeef();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_37eeef();
diff --git a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.dxc.hlsl
index 56d5ddd..e7fa288 100644
--- a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_37eeef();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_37eeef();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.fxc.hlsl
index 56d5ddd..e7fa288 100644
--- a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_37eeef();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_37eeef();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.msl
index fe04e5d..e6337af 100644
--- a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_37eeef(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u);
+void textureStore_37eeef(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_37eeef(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_37eeef(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_37eeef(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_37eeef(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_37eeef(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.spvasm
index 318dae3..0a2b2b1 100644
--- a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.spvasm
@@ -1,81 +1,55 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_37eeef "textureStore_37eeef"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_37eeef = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_37eeef = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_37eeef
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_37eeef
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_37eeef
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_37eeef
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_37eeef
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.wgsl
index 793f876..14f9ffc 100644
--- a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_37eeef();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_37eeef();
diff --git a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl
index a97cb63..79ebaf9 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_37ffd4() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_37ffd4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_37ffd4();
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 e9cfc51..5966ff6 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_37ffd4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_37ffd4();
   return;
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 e9cfc51..5966ff6 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_37ffd4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_37ffd4();
   return;
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 a6da964..fc905ec 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_37ffd4() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_37ffd4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 ccd0fe7..f6f9970 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_37ffd4(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1);
+void textureStore_37ffd4(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_37ffd4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_37ffd4(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_37ffd4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_37ffd4(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_37ffd4(tint_symbol_2);
   return;
 }
 
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 588fc63..c3b32db 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_37ffd4 "textureStore_37ffd4"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %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
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_37ffd4 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_37ffd4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_37ffd4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_37ffd4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_37ffd4
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = 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 de7daec..ae3ab36 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_37ffd4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_37ffd4();
diff --git a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl
index 5dc28de..7d4c4a9 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_38e8d7() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_38e8d7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_38e8d7();
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 de50445..e9350b1 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_38e8d7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_38e8d7();
   return;
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 de50445..e9350b1 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_38e8d7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_38e8d7();
   return;
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 373c87c..9037949 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_38e8d7() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_38e8d7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 1609b52..042a55c 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_38e8d7(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1);
+void textureStore_38e8d7(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_38e8d7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_38e8d7(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_38e8d7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_38e8d7(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_38e8d7(tint_symbol_2);
   return;
 }
 
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 fad0694..cf23682 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_38e8d7 "textureStore_38e8d7"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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
-         %24 = OpCompositeExtract %int %23 0
-         %25 = OpCompositeExtract %int %23 1
-         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_38e8d7 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_38e8d7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_38e8d7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_38e8d7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_38e8d7
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 c89dfae..9e4fd07 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_38e8d7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_38e8d7();
diff --git a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl
index 2be3e60..8f0a847 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_3a52ac() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3a52ac();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3a52ac();
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 5ea974a..78a78fa 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3a52ac();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3a52ac();
   return;
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 5ea974a..78a78fa 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3a52ac();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3a52ac();
   return;
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 d4dab98..0b6446b 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_3a52ac() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_3a52ac();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 1c566a2..fe7d6dd 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3a52ac(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1);
+void textureStore_3a52ac(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_3a52ac(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3a52ac(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3a52ac(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3a52ac(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3a52ac(tint_symbol_2);
   return;
 }
 
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 c1f5cbc..050353f 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.spvasm
@@ -1,78 +1,49 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3a52ac "textureStore_3a52ac"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_3a52ac = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpCompositeConstruct %v3int %15 %16 %int_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_3a52ac
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_3a52ac
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_3a52ac
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_3a52ac
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = 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 7ff9b1e..7d598ea 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3a52ac();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3a52ac();
diff --git a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl
index 43e88c1..5459b19 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_3bb7a1() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3bb7a1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3bb7a1();
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 03f4919..f999b21 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3bb7a1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3bb7a1();
   return;
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 03f4919..f999b21 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3bb7a1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3bb7a1();
   return;
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 9997bd7..3b22e25 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_3bb7a1() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_3bb7a1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e00c212..ce8dbc4 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3bb7a1(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1);
+void textureStore_3bb7a1(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_3bb7a1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3bb7a1(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3bb7a1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3bb7a1(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3bb7a1(tint_symbol_2);
   return;
 }
 
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 c506090..36ff7e0 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3bb7a1 "textureStore_3bb7a1"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_3bb7a1 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_3bb7a1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_3bb7a1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_3bb7a1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_3bb7a1
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 941bf58..a2960d2 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3bb7a1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3bb7a1();
diff --git a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl
index 9bf5bfc..d310821 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_3bec15() {
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3bec15();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3bec15();
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 a344c3b..cdee57c 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3bec15();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3bec15();
   return;
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 a344c3b..cdee57c 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3bec15();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3bec15();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.glsl
index 02e815e..ec1a390 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_3bec15() {
-  imageStore(arg_0, ivec2(1, 0), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_3bec15();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 9dbe6b0..a6b91c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3bec15(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1));
+void textureStore_3bec15(texture1d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_3bec15(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3bec15(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3bec15(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3bec15(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3bec15(tint_symbol_2);
   return;
 }
 
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 44546d3..3d4907d 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3bec15 "textureStore_3bec15"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
      %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 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_3bec15 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_3bec15
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_3bec15
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_3bec15
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_3bec15
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 73d8e4b..9b34840 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3bec15();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3bec15();
diff --git a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl
index 14f5470..91242c3 100644
--- a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_3c1937() {
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3c1937();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3c1937();
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 483ab59..f3cf364 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3c1937();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3c1937();
   return;
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 483ab59..f3cf364 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3c1937();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3c1937();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.glsl
index c6703f6..7e0e501 100644
--- a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_3c1937() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_3c1937();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 670464d..c2bb09c 100644
--- a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3c1937(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1u));
+void textureStore_3c1937(texture1d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_3c1937(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3c1937(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3c1937(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3c1937(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3c1937(tint_symbol_2);
   return;
 }
 
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 003ee50..1f97f18 100644
--- a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3c1937 "textureStore_3c1937"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %21
+         %13 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_3c1937 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_3c1937
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_3c1937
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_3c1937
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_3c1937
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_3c1937
                OpReturn
                OpFunctionEnd
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 7da0a5f..43c484b 100644
--- a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3c1937();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3c1937();
diff --git a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl
index b34c448..d96470a 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_3d1ebe() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3d1ebe();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3d1ebe();
diff --git a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.dxc.hlsl
index 46c83f0..8aabf9e 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3d1ebe();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3d1ebe();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.fxc.hlsl
index 46c83f0..8aabf9e 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3d1ebe();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3d1ebe();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.glsl
index 6141b4c..93b67ef 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2D arg_0;
-void textureStore_3d1ebe() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_3d1ebe();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.msl
index d947e8e..3d4cb20 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3d1ebe(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_3d1ebe(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_3d1ebe(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3d1ebe(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3d1ebe(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3d1ebe(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3d1ebe(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.spvasm
index 9150710..84a8188 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3d1ebe "textureStore_3d1ebe"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_3d1ebe = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_3d1ebe = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_3d1ebe
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_3d1ebe
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_3d1ebe
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_3d1ebe
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_3d1ebe
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.wgsl
index 569a980..5887541 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3d1ebe();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3d1ebe();
diff --git a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl
index a483e9e..b80e29e 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_3d6f01() {
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3d6f01();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3d6f01();
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 25efb14..e350d89 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3d6f01();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3d6f01();
   return;
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 25efb14..e350d89 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3d6f01();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3d6f01();
   return;
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 a6989b8..e0a4af6 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3d6f01(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1u));
+void textureStore_3d6f01(texture1d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_3d6f01(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3d6f01(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3d6f01(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3d6f01(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3d6f01(tint_symbol_2);
   return;
 }
 
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 45b0b4d..a5adb11 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3d6f01 "textureStore_3d6f01"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
       %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 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_3d6f01 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_3d6f01
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_3d6f01
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_3d6f01
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_3d6f01
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 bc5feb5..c4cdd23 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3d6f01();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3d6f01();
diff --git a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl
index 38cd877..7ee110f 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_3d96a4() {
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3d96a4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3d96a4();
diff --git a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.dxc.hlsl
index 02a3509..5224667 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3d96a4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3d96a4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.fxc.hlsl
index 02a3509..5224667 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3d96a4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3d96a4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.glsl
index 68f49a5..b754e65 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_3d96a4() {
-  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_3d96a4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.msl
index c6cff01..89d7207 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3d96a4(texture3d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_3d96a4(texture3d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_3d96a4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3d96a4(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3d96a4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3d96a4(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3d96a4(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.spvasm
index 2d03b56..bb9576c 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3d96a4 "textureStore_3d96a4"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_3d96a4 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_3d96a4 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_3d96a4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_3d96a4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_3d96a4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_3d96a4
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_3d96a4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.wgsl
index 421ab19..8145d2b 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3d96a4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3d96a4();
diff --git a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl
index e80b32c..3a582e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_3e0dc4() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3e0dc4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3e0dc4();
diff --git a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.dxc.hlsl
index 3f34387..b5c75ac 100644
--- a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3e0dc4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3e0dc4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.fxc.hlsl
index 3f34387..b5c75ac 100644
--- a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3e0dc4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3e0dc4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.msl
index f15d9e5..538097f 100644
--- a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3e0dc4(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_3e0dc4(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_3e0dc4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3e0dc4(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3e0dc4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3e0dc4(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3e0dc4(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.spvasm
index 7c9f973..ed49c4e 100644
--- a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3e0dc4 "textureStore_3e0dc4"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_3e0dc4 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_3e0dc4 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_3e0dc4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_3e0dc4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_3e0dc4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_3e0dc4
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_3e0dc4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.wgsl
index 1849d48..63bee3f 100644
--- a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3e0dc4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3e0dc4();
diff --git a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl
index 35bcf7d..c48fec3 100644
--- a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_3f61ca() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3f61ca();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3f61ca();
diff --git a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.dxc.hlsl
index 5dc9ecc..0e6a44b 100644
--- a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3f61ca();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3f61ca();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.fxc.hlsl
index 5dc9ecc..0e6a44b 100644
--- a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3f61ca();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3f61ca();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.glsl
index 3391ade..1d9acea 100644
--- a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
-void textureStore_3f61ca() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_3f61ca();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.msl
index 9057f1a..f5e4456 100644
--- a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3f61ca(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_3f61ca(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_3f61ca(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3f61ca(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3f61ca(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3f61ca(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3f61ca(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.spvasm
index 43ef254..51048c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3f61ca "textureStore_3f61ca"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_3f61ca = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_3f61ca = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_3f61ca
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_3f61ca
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_3f61ca
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_3f61ca
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_3f61ca
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.wgsl
index 1753536..8922e26 100644
--- a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3f61ca();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3f61ca();
diff --git a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl
index 16be35f..130a901 100644
--- a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_3fb31f() {
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3fb31f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3fb31f();
diff --git a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.dxc.hlsl
index 9003187..5064bb7 100644
--- a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3fb31f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3fb31f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.fxc.hlsl
index 9003187..5064bb7 100644
--- a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3fb31f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3fb31f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.msl
index e625cc5..ee4f047 100644
--- a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3fb31f(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(uint3(1u)));
+void textureStore_3fb31f(texture3d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_3fb31f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3fb31f(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3fb31f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3fb31f(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3fb31f(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.spvasm
index 34b5172..e15699a 100644
--- a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3fb31f "textureStore_3fb31f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %13 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_3fb31f = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_3fb31f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_3fb31f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_3fb31f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_3fb31f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_3fb31f
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_3fb31f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.wgsl
index 3251213..95930d4 100644
--- a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3fb31f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3fb31f();
diff --git a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl
index 0e8b14e..9d947f2 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_40c455() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_40c455();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_40c455();
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 0c14c29..117e9a5 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_40c455();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_40c455();
   return;
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 0c14c29..117e9a5 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_40c455();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_40c455();
   return;
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 1c50b0c..bbcecde 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_40c455() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_40c455();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 b90a54c..638ac49 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_40c455(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)));
+void textureStore_40c455(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_40c455(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_40c455(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_40c455(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_40c455(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_40c455(tint_symbol_2);
   return;
 }
 
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 1990f95..415e888 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_40c455 "textureStore_40c455"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_40c455 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_40c455
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_40c455
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_40c455
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_40c455
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 9e144de..57cd646 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_40c455();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_40c455();
diff --git a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl
index f765df2..182c96f 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_4288fc() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4288fc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4288fc();
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 4bfd15f..d2f7cb1 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4288fc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4288fc();
   return;
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 4bfd15f..d2f7cb1 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4288fc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4288fc();
   return;
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 d9b1de9..cae38cd 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image3D arg_0;
-void textureStore_4288fc() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_4288fc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 7642d26..cbf10bb 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4288fc(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u)));
+void textureStore_4288fc(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_4288fc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4288fc(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4288fc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4288fc(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4288fc(tint_symbol_2);
   return;
 }
 
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 2c8b573..ce41814 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4288fc "textureStore_4288fc"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_4288fc = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_4288fc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_4288fc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_4288fc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_4288fc
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 ed36fbe..fd33913 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4288fc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4288fc();
diff --git a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl
index d9b85fa..058bcd8 100644
--- a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_43d1df() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_43d1df();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_43d1df();
diff --git a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.dxc.hlsl
index 068d224..15be19e 100644
--- a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_43d1df();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_43d1df();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.fxc.hlsl
index 068d224..15be19e 100644
--- a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_43d1df();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_43d1df();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.msl
index 012b3d7..3e013d5 100644
--- a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_43d1df(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_43d1df(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_43d1df(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_43d1df(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_43d1df(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_43d1df(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_43d1df(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.spvasm
index ab35050..4878941 100644
--- a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_43d1df "textureStore_43d1df"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_43d1df = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_43d1df = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_43d1df
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_43d1df
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_43d1df
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_43d1df
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_43d1df
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.wgsl
index 8f43db2..ac8fb4f 100644
--- a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_43d1df();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_43d1df();
diff --git a/test/tint/builtins/gen/literal/textureStore/441222.wgsl b/test/tint/builtins/gen/literal/textureStore/441222.wgsl
index cc72606..c3c5e8f 100644
--- a/test/tint/builtins/gen/literal/textureStore/441222.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/441222.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_441222() {
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_441222();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_441222();
diff --git a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.dxc.hlsl
index 7ef072b..09c23c8 100644
--- a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_441222();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_441222();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.fxc.hlsl
index 7ef072b..09c23c8 100644
--- a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_441222();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_441222();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.glsl
index 0b3b760..47d0563 100644
--- a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_441222() {
-  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_441222();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.msl
index fb9a30c..5254ced 100644
--- a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_441222(texture2d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_441222(texture2d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_441222(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_441222(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_441222(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_441222(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_441222(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.spvasm
index 81bcdb5..174cbf0 100644
--- a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_441222 "textureStore_441222"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_441222 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_441222 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_441222
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_441222
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_441222
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_441222
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_441222
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.wgsl
index 196da04..3e13c96 100644
--- a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_441222();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_441222();
diff --git a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl
index d185b4a..2e6413a 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_441ba8() {
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_441ba8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_441ba8();
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 264c59f..e160804 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_441ba8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_441ba8();
   return;
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 264c59f..e160804 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_441ba8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_441ba8();
   return;
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 383be3f..0e9bfb9 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_441ba8() {
-  imageStore(arg_0, ivec3(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_441ba8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 8135665..9357526 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_441ba8(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(int3(1)));
+void textureStore_441ba8(texture3d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_441ba8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_441ba8(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_441ba8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_441ba8(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_441ba8(tint_symbol_2);
   return;
 }
 
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 3dc4d15..80dd88f 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_441ba8 "textureStore_441ba8"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_441ba8 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_441ba8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_441ba8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_441ba8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_441ba8
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 e50241e..ac9365f 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_441ba8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_441ba8();
diff --git a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl
index e059924..49e5853 100644
--- a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_4483e7() {
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4483e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4483e7();
diff --git a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.dxc.hlsl
index 33a8106..9d0c31c 100644
--- a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4483e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4483e7();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.fxc.hlsl
index 33a8106..9d0c31c 100644
--- a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4483e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4483e7();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.glsl
index 83412a1..a998efc 100644
--- a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_4483e7() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_4483e7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.msl
index 542beb6..bdf0dcc 100644
--- a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4483e7(texture1d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1u)); tint_symbol_1.fence();
+void textureStore_4483e7(texture1d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_4483e7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4483e7(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4483e7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4483e7(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4483e7(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.spvasm
index b5c3f4a..fc2eb62 100644
--- a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4483e7 "textureStore_4483e7"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
       %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_4483e7 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_4483e7 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_4483e7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_4483e7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_4483e7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_4483e7
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_4483e7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.wgsl
index f0627e8..55e4a5f 100644
--- a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4483e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4483e7();
diff --git a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl
index d9c39bb..f938b781 100644
--- a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_44b372() {
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_44b372();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_44b372();
diff --git a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.dxc.hlsl
index 5053e85..321e4a2 100644
--- a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_44b372();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_44b372();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.fxc.hlsl
index 5053e85..321e4a2 100644
--- a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_44b372();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_44b372();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.glsl
index 257f149..d4f8863 100644
--- a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_44b372() {
-  imageStore(arg_0, ivec2(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_44b372();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.msl
index b30210b..0bd2cb8 100644
--- a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_44b372(texture2d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_44b372(texture2d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_44b372(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_44b372(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_44b372(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_44b372(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_44b372(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.spvasm
index e4bc7c5..0a61b4c 100644
--- a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_44b372 "textureStore_44b372"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %13 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_44b372 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_44b372 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_44b372
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_44b372
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_44b372
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_44b372
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_44b372
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.wgsl
index 93b8162..249cdca 100644
--- a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_44b372();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_44b372();
diff --git a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl
index bdcfcc6..6a15770 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_44daa7() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_44daa7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_44daa7();
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 2e8295e..e83f53b 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_44daa7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_44daa7();
   return;
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 2e8295e..e83f53b 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_44daa7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_44daa7();
   return;
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 a34145c..f9440ba 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_44daa7() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_44daa7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 c13854b..d995585 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_44daa7(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u);
+void textureStore_44daa7(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_44daa7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_44daa7(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_44daa7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_44daa7(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_44daa7(tint_symbol_2);
   return;
 }
 
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 1096e90..2d10c5e 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_44daa7 "textureStore_44daa7"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %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
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_44daa7 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_44daa7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_44daa7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_44daa7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_44daa7
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = 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 8e5eb43..1c879c0 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_44daa7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_44daa7();
diff --git a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl
index 21efd56..35a2b44 100644
--- a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_473ead() {
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_473ead();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_473ead();
diff --git a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.dxc.hlsl
index b264d23..ed9ac0a 100644
--- a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_473ead();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_473ead();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.fxc.hlsl
index b264d23..ed9ac0a 100644
--- a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_473ead();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_473ead();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.msl
index 60c8822..69efefe 100644
--- a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_473ead(texture3d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_473ead(texture3d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_473ead(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_473ead(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_473ead(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_473ead(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_473ead(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.spvasm
index caf2726..3e13b93 100644
--- a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_473ead "textureStore_473ead"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %13 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_473ead = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_473ead = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_473ead
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_473ead
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_473ead
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_473ead
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_473ead
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.wgsl
index b9ae216..3a83277 100644
--- a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_473ead();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_473ead();
diff --git a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl
index 79c81e3..81bab51 100644
--- a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_47bd70() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_47bd70();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_47bd70();
diff --git a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.dxc.hlsl
index 9468fa1..1dab103 100644
--- a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_47bd70();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_47bd70();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.fxc.hlsl
index 9468fa1..1dab103 100644
--- a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_47bd70();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_47bd70();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.glsl
index fb0866e..b07e695 100644
--- a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_47bd70() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_47bd70();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.msl
index e3ed09d..734bfcc 100644
--- a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_47bd70(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_47bd70(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_47bd70(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_47bd70(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_47bd70(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_47bd70(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_47bd70(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.spvasm
index 765870f..dc8c0a8 100644
--- a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_47bd70 "textureStore_47bd70"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_47bd70 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_47bd70 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_47bd70
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_47bd70
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_47bd70
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_47bd70
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_47bd70
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.wgsl
index 8c80a50..69657f1 100644
--- a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_47bd70();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_47bd70();
diff --git a/test/tint/builtins/gen/literal/textureStore/486500.wgsl b/test/tint/builtins/gen/literal/textureStore/486500.wgsl
index 04ae4dd..b6afdc7 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_486500() {
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_486500();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_486500();
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 59d5feb..9314899 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_486500();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_486500();
   return;
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 59d5feb..9314899 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_486500();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_486500();
   return;
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 9224403..9be3af4 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_486500() {
-  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_486500();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 4718b8d..3abff6b 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_486500(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(uint3(1u)));
+void textureStore_486500(texture3d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_486500(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_486500(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_486500(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_486500(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_486500(tint_symbol_2);
   return;
 }
 
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 f89fab7..f9500b2 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_486500 "textureStore_486500"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_486500 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_486500
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_486500
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_486500
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_486500
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 7008d69..439ae0c 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_486500();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_486500();
diff --git a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl
index f00944d..be05e9e 100644
--- a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_48cb56() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_48cb56();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_48cb56();
diff --git a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.dxc.hlsl
index c814ba4..afad392 100644
--- a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_48cb56();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_48cb56();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.fxc.hlsl
index c814ba4..afad392 100644
--- a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_48cb56();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_48cb56();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.glsl
index 7066be7..ae07ddb 100644
--- a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_48cb56() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_48cb56();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.msl
index 47dee62..597281e 100644
--- a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_48cb56(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_48cb56(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_48cb56(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_48cb56(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_48cb56(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_48cb56(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_48cb56(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.spvasm
index 125e4cb..495bcda 100644
--- a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.spvasm
@@ -1,79 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_48cb56 "textureStore_48cb56"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_48cb56 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %24 = OpCompositeExtract %uint %23 0
-         %25 = OpCompositeExtract %uint %23 1
-         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_48cb56 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_48cb56
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_48cb56
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_48cb56
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_48cb56
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_48cb56
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.wgsl
index 6a248b8..a83cd40 100644
--- a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_48cb56();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_48cb56();
diff --git a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl
index 5f38612..683e84d 100644
--- a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_48eae1() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_48eae1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_48eae1();
diff --git a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.dxc.hlsl
index 648835f..f9df9a3 100644
--- a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_48eae1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_48eae1();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.fxc.hlsl
index 648835f..f9df9a3 100644
--- a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_48eae1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_48eae1();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.msl
index df004d4..ce03a28 100644
--- a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_48eae1(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)));
+void textureStore_48eae1(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_48eae1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_48eae1(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_48eae1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_48eae1(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_48eae1(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.spvasm
index 63c8b23..c4dced6 100644
--- a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.spvasm
@@ -1,74 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_48eae1 "textureStore_48eae1"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_48eae1 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_48eae1 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_48eae1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_48eae1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_48eae1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_48eae1
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_48eae1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.wgsl
index d6fbf5e..31f7361 100644
--- a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_48eae1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_48eae1();
diff --git a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl
index 12bd594..bbc8d5e 100644
--- a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_4bf1fd() {
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4bf1fd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4bf1fd();
diff --git a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.dxc.hlsl
index bb0bd09..b89945d 100644
--- a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4bf1fd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4bf1fd();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.fxc.hlsl
index bb0bd09..b89945d 100644
--- a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4bf1fd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4bf1fd();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.glsl
index 177cc78..7a955b5 100644
--- a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2D arg_0;
-void textureStore_4bf1fd() {
-  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_4bf1fd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.msl
index 816bc26..5194f0c 100644
--- a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4bf1fd(texture2d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_4bf1fd(texture2d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_4bf1fd(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4bf1fd(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4bf1fd(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4bf1fd(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4bf1fd(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.spvasm
index 7149f84..994b69c 100644
--- a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4bf1fd "textureStore_4bf1fd"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %13 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_4bf1fd = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_4bf1fd = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_4bf1fd
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_4bf1fd
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_4bf1fd
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_4bf1fd
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_4bf1fd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.wgsl
index 97df9a5..9e7c1af 100644
--- a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4bf1fd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4bf1fd();
diff --git a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl
index 0b3ba21..0437b83 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_4c454f() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4c454f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4c454f();
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 11c63c5..3ab19a4 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4c454f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4c454f();
   return;
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 11c63c5..3ab19a4 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4c454f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4c454f();
   return;
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 bf71b07..f143c21 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4c454f(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u);
+void textureStore_4c454f(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_4c454f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4c454f(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4c454f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4c454f(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4c454f(tint_symbol_2);
   return;
 }
 
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 addc252..1c095c7 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4c454f "textureStore_4c454f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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
-         %24 = OpCompositeExtract %uint %23 0
-         %25 = OpCompositeExtract %uint %23 1
-         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_4c454f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_4c454f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_4c454f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_4c454f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_4c454f
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 77a6758..af8a132 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4c454f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4c454f();
diff --git a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl
index d788525..404589b 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_4c76b7() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4c76b7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4c76b7();
diff --git a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.dxc.hlsl
index 62cc4ad..6773fc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4c76b7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4c76b7();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.fxc.hlsl
index 62cc4ad..6773fc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4c76b7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4c76b7();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.glsl
index f5c16b0..e33d7d8 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_4c76b7() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_4c76b7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.msl
index 710333c..7d8f9e0 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4c76b7(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_4c76b7(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_4c76b7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4c76b7(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4c76b7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4c76b7(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4c76b7(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.spvasm
index 5dcb0b4..3e725d6 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.spvasm
@@ -1,79 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4c76b7 "textureStore_4c76b7"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_4c76b7 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_4c76b7 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_4c76b7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_4c76b7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_4c76b7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_4c76b7
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_4c76b7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.wgsl
index 09162bd..f4162f2 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4c76b7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4c76b7();
diff --git a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl
index 973e955..f76900a 100644
--- a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_4cce74() {
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4cce74();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4cce74();
diff --git a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.dxc.hlsl
index 89aaf90..7512202 100644
--- a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4cce74();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4cce74();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.fxc.hlsl
index 89aaf90..7512202 100644
--- a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4cce74();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4cce74();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.msl
index 9c00cc5..33f5d60 100644
--- a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4cce74(texture1d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1)); tint_symbol_1.fence();
+void textureStore_4cce74(texture1d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_4cce74(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4cce74(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4cce74(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4cce74(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4cce74(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.spvasm
index 98f4399..79b506b 100644
--- a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4cce74 "textureStore_4cce74"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
      %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_4cce74 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_4cce74 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_4cce74
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_4cce74
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_4cce74
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_4cce74
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_4cce74
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.wgsl
index abfeb77..3d59e57 100644
--- a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4cce74();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4cce74();
diff --git a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl
index 429b84c..24ad3da 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_4d359d() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4d359d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4d359d();
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 e0dd2e6..06afa01 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4d359d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4d359d();
   return;
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 e0dd2e6..06afa01 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4d359d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4d359d();
   return;
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 b100b64..e27783f 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4d359d(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1);
+void textureStore_4d359d(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_4d359d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4d359d(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4d359d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4d359d(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4d359d(tint_symbol_2);
   return;
 }
 
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 7971519..6f389f6 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.spvasm
@@ -1,82 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4d359d "textureStore_4d359d"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_4d359d = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_4d359d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_4d359d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_4d359d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_4d359d
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 1dd8775..6139b0a 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4d359d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4d359d();
diff --git a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl
index a7560dc..147a448 100644
--- a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_4ddf52() {
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4ddf52();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4ddf52();
diff --git a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.dxc.hlsl
index 752b91f..8b4f32d 100644
--- a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4ddf52();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4ddf52();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.fxc.hlsl
index 752b91f..8b4f32d 100644
--- a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4ddf52();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4ddf52();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.glsl
index 22ab540..8c1e470 100644
--- a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_4ddf52() {
-  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_4ddf52();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.msl
index a424cfe..0487d01 100644
--- a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4ddf52(texture2d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_4ddf52(texture2d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_4ddf52(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4ddf52(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4ddf52(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4ddf52(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4ddf52(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.spvasm
index 4fcd5c6..53648d6 100644
--- a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4ddf52 "textureStore_4ddf52"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_4ddf52 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_4ddf52 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_4ddf52
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_4ddf52
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_4ddf52
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_4ddf52
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_4ddf52
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.wgsl
index 87cda68..eb4167f 100644
--- a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4ddf52();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4ddf52();
diff --git a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl
index d43df9f..e6bfd9f 100644
--- a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_4e2b3a() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4e2b3a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4e2b3a();
diff --git a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.dxc.hlsl
index c711fd8..ecba7eb 100644
--- a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4e2b3a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4e2b3a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.fxc.hlsl
index c711fd8..ecba7eb 100644
--- a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4e2b3a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4e2b3a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.msl
index d8df4cb..e2f45a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4e2b3a(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_4e2b3a(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_4e2b3a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4e2b3a(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4e2b3a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4e2b3a(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4e2b3a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.spvasm
index 4bcf446..ae244f3 100644
--- a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4e2b3a "textureStore_4e2b3a"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_4e2b3a = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_4e2b3a = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_4e2b3a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_4e2b3a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_4e2b3a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_4e2b3a
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_4e2b3a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.wgsl
index ff71cc7..ad4966f 100644
--- a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4e2b3a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4e2b3a();
diff --git a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl
index 5f89823..7fcded0 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_4fc057() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4fc057();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4fc057();
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 df8f350..0acca1b 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4fc057();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4fc057();
   return;
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 df8f350..0acca1b 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4fc057();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4fc057();
   return;
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 ed1561f..5666681 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_4fc057() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_4fc057();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 9c97891..ca9b939 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4fc057(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1);
+void textureStore_4fc057(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_4fc057(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4fc057(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4fc057(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4fc057(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4fc057(tint_symbol_2);
   return;
 }
 
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 f15b6dd..52bf06e 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4fc057 "textureStore_4fc057"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_4fc057 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_4fc057
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_4fc057
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_4fc057
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_4fc057
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 34cfaeb..3992cd9 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4fc057();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4fc057();
diff --git a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl
index 63aae37..32ce359 100644
--- a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_5030f5() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5030f5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5030f5();
diff --git a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.dxc.hlsl
index 2b2ba40..f1c7f5a 100644
--- a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5030f5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5030f5();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.fxc.hlsl
index 2b2ba40..f1c7f5a 100644
--- a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5030f5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5030f5();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.glsl
index 01e3641..05000ec 100644
--- a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_5030f5() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_5030f5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.msl
index ccedc11..3aa0794 100644
--- a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5030f5(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_5030f5(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_5030f5(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5030f5(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5030f5(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5030f5(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5030f5(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.spvasm
index e8e75c0..c3fe995 100644
--- a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.spvasm
@@ -1,76 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5030f5 "textureStore_5030f5"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_5030f5 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_5030f5 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_5030f5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_5030f5
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_5030f5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_5030f5
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_5030f5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.wgsl
index ffcbc91..ae282c9 100644
--- a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5030f5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5030f5();
diff --git a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl
index 14fabb1..cba0ac2 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_506a71() {
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_506a71();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_506a71();
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 0b02391..c713193 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_506a71();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_506a71();
   return;
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 0b02391..c713193 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_506a71();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_506a71();
   return;
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 73ff967..f8845fc 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_506a71(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)));
+void textureStore_506a71(texture2d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_506a71(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_506a71(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_506a71(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_506a71(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_506a71(tint_symbol_2);
   return;
 }
 
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 64a7f82..95d6c62 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_506a71 "textureStore_506a71"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %13 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_506a71 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_506a71
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_506a71
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_506a71
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_506a71
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 59d771d..aac1e9b 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_506a71();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_506a71();
diff --git a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl
index 2f1dbe6..6d3a5262 100644
--- a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_51ec82() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_51ec82();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_51ec82();
diff --git a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.dxc.hlsl
index 41a427f..24de400 100644
--- a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_51ec82();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_51ec82();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.fxc.hlsl
index 41a427f..24de400 100644
--- a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_51ec82();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_51ec82();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.msl
index 3ab9c16..2f29d67 100644
--- a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_51ec82(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1)); tint_symbol_1.fence();
+void textureStore_51ec82(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_51ec82(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_51ec82(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_51ec82(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_51ec82(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_51ec82(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.spvasm
index a395b65..a571a1a 100644
--- a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_51ec82 "textureStore_51ec82"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_51ec82 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_51ec82 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_51ec82
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_51ec82
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_51ec82
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_51ec82
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_51ec82
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.wgsl
index 135fe8b..c3b0af4 100644
--- a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_51ec82();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_51ec82();
diff --git a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl
index a77fa54..4f6900d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_5246b4() {
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5246b4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5246b4();
diff --git a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.dxc.hlsl
index 6090193..86d63f4 100644
--- a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5246b4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5246b4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.fxc.hlsl
index 6090193..86d63f4 100644
--- a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5246b4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5246b4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.glsl
index 7f1b2e2..422ff06 100644
--- a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage3D arg_0;
-void textureStore_5246b4() {
-  imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_5246b4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.msl
index 318acbd..228d33d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5246b4(texture3d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_5246b4(texture3d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_5246b4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5246b4(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5246b4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5246b4(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5246b4(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.spvasm
index 899b024..e67b83d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5246b4 "textureStore_5246b4"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %13 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_5246b4 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_5246b4 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_5246b4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_5246b4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_5246b4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_5246b4
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_5246b4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.wgsl
index 1858c32..d547d0c 100644
--- a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5246b4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5246b4();
diff --git a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl
index 16ca396..a0f6c84 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_52f503() {
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_52f503();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_52f503();
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 ed767eb..88606e9 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_52f503();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_52f503();
   return;
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 ed767eb..88606e9 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_52f503();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_52f503();
   return;
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 3d88954..eeac01f 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_52f503() {
-  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_52f503();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 73f8fee..09a0db0 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_52f503(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)));
+void textureStore_52f503(texture2d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_52f503(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_52f503(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_52f503(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_52f503(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_52f503(tint_symbol_2);
   return;
 }
 
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 86ebd4c..9266327 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_52f503 "textureStore_52f503"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_52f503 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_52f503
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_52f503
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_52f503
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_52f503
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 d273fee..2055fae 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_52f503();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_52f503();
diff --git a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl
index 9bf7956..89c7bcd 100644
--- a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_53a68b() {
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_53a68b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_53a68b();
diff --git a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.dxc.hlsl
index 4f858342..e9dc2ec 100644
--- a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_53a68b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_53a68b();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.fxc.hlsl
index 4f858342..e9dc2ec 100644
--- a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_53a68b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_53a68b();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.glsl
index 53e2a39..abc0cc7 100644
--- a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage3D arg_0;
-void textureStore_53a68b() {
-  imageStore(arg_0, ivec3(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_53a68b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.msl
index 65e9fab..ee82d69 100644
--- a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_53a68b(texture3d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_53a68b(texture3d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_53a68b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_53a68b(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_53a68b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_53a68b(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_53a68b(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.spvasm
index a89d7db..ff3f931 100644
--- a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_53a68b "textureStore_53a68b"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_53a68b = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_53a68b = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_53a68b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_53a68b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_53a68b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_53a68b
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_53a68b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.wgsl
index 2ad653a..df25069 100644
--- a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_53a68b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_53a68b();
diff --git a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl
index 38fc3f0..5c5ede8 100644
--- a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_5425ab() {
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5425ab();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5425ab();
diff --git a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.dxc.hlsl
index e0738a3..643e5d8 100644
--- a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5425ab();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5425ab();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.fxc.hlsl
index e0738a3..643e5d8 100644
--- a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5425ab();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5425ab();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.msl
index dcb17eb..43241a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5425ab(texture2d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_5425ab(texture2d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_5425ab(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5425ab(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5425ab(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5425ab(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5425ab(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.spvasm
index 2a46aa5..0481eaf 100644
--- a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5425ab "textureStore_5425ab"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_5425ab = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_5425ab = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_5425ab
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_5425ab
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_5425ab
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_5425ab
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_5425ab
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.wgsl
index 4af1c4b..04f0c7b 100644
--- a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5425ab();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5425ab();
diff --git a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl
index 1acde24..a273d74 100644
--- a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_544f06() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_544f06();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_544f06();
diff --git a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.dxc.hlsl
index daec121..bb5e117 100644
--- a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_544f06();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_544f06();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.fxc.hlsl
index daec121..bb5e117 100644
--- a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_544f06();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_544f06();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.glsl
index b6f095b..57b4115 100644
--- a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_544f06() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_544f06();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.msl
index 200d399..0d05ab6 100644
--- a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_544f06(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_544f06(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_544f06(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_544f06(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_544f06(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_544f06(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_544f06(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.spvasm
index b9879df..4c6d168 100644
--- a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_544f06 "textureStore_544f06"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_544f06 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_544f06 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_544f06
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_544f06
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_544f06
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_544f06
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_544f06
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.wgsl
index a99f50e..01159c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_544f06();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_544f06();
diff --git a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl
index a581725..343366f 100644
--- a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_55f9dc() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_55f9dc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_55f9dc();
diff --git a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.dxc.hlsl
index e77f091..5df52f7 100644
--- a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_55f9dc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_55f9dc();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.fxc.hlsl
index e77f091..5df52f7 100644
--- a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_55f9dc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_55f9dc();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.glsl
index 0db9b8a..2269473 100644
--- a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_55f9dc() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_55f9dc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.msl
index a680959..7cf1c9d 100644
--- a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_55f9dc(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_55f9dc(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_55f9dc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_55f9dc(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_55f9dc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_55f9dc(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_55f9dc(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.spvasm
index 41f335a..2a4211a 100644
--- a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.spvasm
@@ -1,76 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_55f9dc "textureStore_55f9dc"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_55f9dc = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_55f9dc = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_55f9dc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_55f9dc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_55f9dc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_55f9dc
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_55f9dc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.wgsl
index 08d319a..43cc28c 100644
--- a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_55f9dc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_55f9dc();
diff --git a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl
index 3b81b0b..5c91c47 100644
--- a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_574a31() {
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_574a31();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_574a31();
diff --git a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.dxc.hlsl
index 1315c7c..a56aff1 100644
--- a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_574a31();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_574a31();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.fxc.hlsl
index 1315c7c..a56aff1 100644
--- a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_574a31();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_574a31();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.msl
index 6778700..6a5a2bb 100644
--- a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_574a31(texture1d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1u)); tint_symbol_1.fence();
+void textureStore_574a31(texture1d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_574a31(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_574a31(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_574a31(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_574a31(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_574a31(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.spvasm
index c3adcae..92bd1ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_574a31 "textureStore_574a31"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
       %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_574a31 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_574a31 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_574a31
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_574a31
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_574a31
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_574a31
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_574a31
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.wgsl
index 18a1d51..7b25ee1 100644
--- a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_574a31();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_574a31();
diff --git a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl
index f4183c6..6858d65 100644
--- a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_579b93() {
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_579b93();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_579b93();
diff --git a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.dxc.hlsl
index 08a7617..5bfa7ce 100644
--- a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_579b93();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_579b93();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.fxc.hlsl
index 08a7617..5bfa7ce 100644
--- a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_579b93();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_579b93();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.glsl
index 78635f7..1815bd9 100644
--- a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2D arg_0;
-void textureStore_579b93() {
-  imageStore(arg_0, ivec2(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_579b93();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.msl
index eeba0b6..b7001e6 100644
--- a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_579b93(texture2d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_579b93(texture2d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_579b93(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_579b93(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_579b93(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_579b93(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_579b93(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.spvasm
index af410a9..f0fdfb6 100644
--- a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_579b93 "textureStore_579b93"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_579b93 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_579b93 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_579b93
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_579b93
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_579b93
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_579b93
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_579b93
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.wgsl
index 343ec49..57df640 100644
--- a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_579b93();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_579b93();
diff --git a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl
index 29dfdef..f61f6fd 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_5841f8() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5841f8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5841f8();
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 57ba5e7..c101cfa 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5841f8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5841f8();
   return;
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 57ba5e7..c101cfa 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5841f8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5841f8();
   return;
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 bc3d17f..5df3655 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_5841f8() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_5841f8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 5a95763..9e1824b 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5841f8(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u);
+void textureStore_5841f8(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_5841f8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5841f8(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5841f8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5841f8(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5841f8(tint_symbol_2);
   return;
 }
 
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 2e43444..5f98d4e 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5841f8 "textureStore_5841f8"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_5841f8 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_5841f8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_5841f8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_5841f8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_5841f8
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 f3aa2f5..53151f7 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5841f8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5841f8();
diff --git a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl
index 3a8ca96..ee2c2e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_58fc35() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_58fc35();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_58fc35();
diff --git a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.dxc.hlsl
index 83ed63a..e3b57ca 100644
--- a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_58fc35();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_58fc35();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.fxc.hlsl
index 83ed63a..e3b57ca 100644
--- a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_58fc35();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_58fc35();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.glsl
index b43f360..fd872aa 100644
--- a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_58fc35() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_58fc35();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.msl
index ad427a8..60fefb3 100644
--- a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_58fc35(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u)); tint_symbol_1.fence();
+void textureStore_58fc35(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_58fc35(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_58fc35(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_58fc35(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_58fc35(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_58fc35(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.spvasm
index 2b10a75..d56db45 100644
--- a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.spvasm
@@ -1,71 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_58fc35 "textureStore_58fc35"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_58fc35 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_58fc35 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_58fc35
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_58fc35
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_58fc35
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_58fc35
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_58fc35
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.wgsl
index 8c36a7a..9e13d18 100644
--- a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_58fc35();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_58fc35();
diff --git a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl
index 1166414..553b9c5 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_59a0ab() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_59a0ab();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_59a0ab();
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 27c856b..399f254 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_59a0ab();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_59a0ab();
   return;
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 27c856b..399f254 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_59a0ab();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_59a0ab();
   return;
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 63ff9c9..78720b2 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_59a0ab() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_59a0ab();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 57fd487..77a630f 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_59a0ab(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1);
+void textureStore_59a0ab(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_59a0ab(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_59a0ab(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_59a0ab(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_59a0ab(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_59a0ab(tint_symbol_2);
   return;
 }
 
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 37818bf4..3242e20 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_59a0ab "textureStore_59a0ab"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %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
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_59a0ab = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_59a0ab
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_59a0ab
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_59a0ab
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_59a0ab
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = 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 c2b7e2f..6d45f80 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_59a0ab();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_59a0ab();
diff --git a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl
index e720565..a1cb543 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_5a2f8f() {
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5a2f8f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5a2f8f();
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 9d417d1..76ab5a2 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5a2f8f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5a2f8f();
   return;
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 9d417d1..76ab5a2 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5a2f8f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5a2f8f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.glsl
index 00d501e..63e7851 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_5a2f8f() {
-  imageStore(arg_0, ivec2(1, 0), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_5a2f8f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 52905ad..511b9c9 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5a2f8f(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1));
+void textureStore_5a2f8f(texture1d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_5a2f8f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5a2f8f(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5a2f8f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5a2f8f(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5a2f8f(tint_symbol_2);
   return;
 }
 
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 4775bee..1deb9b8 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5a2f8f "textureStore_5a2f8f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %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
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %21
+         %13 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_5a2f8f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_5a2f8f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_5a2f8f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_5a2f8f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_5a2f8f
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_5a2f8f
                OpReturn
                OpFunctionEnd
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 c7b1590..ddd4da7 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5a2f8f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5a2f8f();
diff --git a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl
index 4d06a16..5637048 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_5a8b41() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5a8b41();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5a8b41();
diff --git a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.dxc.hlsl
index ed0fb35..0917c42 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5a8b41();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5a8b41();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.fxc.hlsl
index ed0fb35..0917c42 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5a8b41();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5a8b41();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.glsl
index 28f55f8..4f1c685 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_5a8b41() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_5a8b41();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.msl
index ef54f2e..abe9d3f 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5a8b41(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_5a8b41(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_5a8b41(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5a8b41(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5a8b41(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5a8b41(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5a8b41(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.spvasm
index fff26fb..8b84b55 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.spvasm
@@ -1,79 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5a8b41 "textureStore_5a8b41"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_5a8b41 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_5a8b41 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_5a8b41
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_5a8b41
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_5a8b41
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_5a8b41
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_5a8b41
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.wgsl
index 8990b14..44192ca 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5a8b41();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5a8b41();
diff --git a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl
index 18482d9..50aef29 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_5b17eb() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5b17eb();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5b17eb();
diff --git a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.dxc.hlsl
index 57ecf44..8212452 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5b17eb();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5b17eb();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.fxc.hlsl
index 57ecf44..8212452 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5b17eb();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5b17eb();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.msl
index 100b91c0..50690d4 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5b17eb(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_5b17eb(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_5b17eb(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5b17eb(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5b17eb(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5b17eb(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5b17eb(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.spvasm
index 390bf31..c930f76 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5b17eb "textureStore_5b17eb"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_5b17eb = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_5b17eb = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_5b17eb
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_5b17eb
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_5b17eb
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_5b17eb
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_5b17eb
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.wgsl
index 4618648..d0f7a58 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5b17eb();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5b17eb();
diff --git a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl
index 0601db9..f0c23b1 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_5b4522() {
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5b4522();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5b4522();
diff --git a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.dxc.hlsl
index 6d966b7..d1f4c75 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5b4522();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5b4522();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.fxc.hlsl
index 6d966b7..d1f4c75 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5b4522();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5b4522();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.glsl
index 0dc639b..32585e6 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_5b4522() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_5b4522();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.msl
index be7e28a..76a0aaf 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5b4522(texture1d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1u)); tint_symbol_1.fence();
+void textureStore_5b4522(texture1d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_5b4522(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5b4522(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5b4522(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5b4522(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5b4522(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.spvasm
index 51f93b4..3c8e97a 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.spvasm
@@ -1,72 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5b4522 "textureStore_5b4522"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %22 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_5b4522 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %21
+         %13 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_5b4522 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_5b4522
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_5b4522
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_5b4522
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_5b4522
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_5b4522
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.wgsl
index ef701de..d8e07f6 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5b4522();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5b4522();
diff --git a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl
index 58d1096..bba16de 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_5bc4f3() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5bc4f3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5bc4f3();
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 11c20ea..07d2d90 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5bc4f3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5bc4f3();
   return;
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 11c20ea..07d2d90 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5bc4f3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5bc4f3();
   return;
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 1f9ae17..a369fce 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5bc4f3(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u);
+void textureStore_5bc4f3(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_5bc4f3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5bc4f3(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5bc4f3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5bc4f3(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5bc4f3(tint_symbol_2);
   return;
 }
 
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 5353efe..9714268 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.spvasm
@@ -1,79 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5bc4f3 "textureStore_5bc4f3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_5bc4f3 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpCompositeConstruct %v3uint %15 %16 %uint_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_5bc4f3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_5bc4f3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_5bc4f3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_5bc4f3
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = 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 e3486d7..aef5a9d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5bc4f3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5bc4f3();
diff --git a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl
index 9e9034b..d00958b 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_5ddc61() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5ddc61();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5ddc61();
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 91f451b..1024e7c 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5ddc61();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5ddc61();
   return;
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 91f451b..1024e7c 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5ddc61();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5ddc61();
   return;
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 186c4f8..aa49a72 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_5ddc61() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_5ddc61();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 de56731..ef64c35 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5ddc61(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u);
+void textureStore_5ddc61(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_5ddc61(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5ddc61(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5ddc61(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5ddc61(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5ddc61(tint_symbol_2);
   return;
 }
 
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 4b17a36..a9d923d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5ddc61 "textureStore_5ddc61"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_5ddc61 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_5ddc61
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_5ddc61
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_5ddc61
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_5ddc61
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 33304b9..e703d0f 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5ddc61();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5ddc61();
diff --git a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl
index fd99d61..a5c86d7 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_5ec6b2() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5ec6b2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5ec6b2();
diff --git a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.dxc.hlsl
index 0eff576..2a9651d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5ec6b2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5ec6b2();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.fxc.hlsl
index 0eff576..2a9651d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5ec6b2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5ec6b2();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.glsl
index 1568e4b..4ceb498 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image3D arg_0;
-void textureStore_5ec6b2() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_5ec6b2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.msl
index 9ba43de..9436251 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5ec6b2(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_5ec6b2(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_5ec6b2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5ec6b2(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5ec6b2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5ec6b2(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5ec6b2(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.spvasm
index ea5f85e..9a4714b 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5ec6b2 "textureStore_5ec6b2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_5ec6b2 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_5ec6b2 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_5ec6b2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_5ec6b2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_5ec6b2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_5ec6b2
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_5ec6b2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.wgsl
index 88a3041..2db0900 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5ec6b2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5ec6b2();
diff --git a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl
index 07d214f..02ed091 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_5ee194() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5ee194();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5ee194();
diff --git a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.dxc.hlsl
index 4d17654..d9f5874 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5ee194();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5ee194();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.fxc.hlsl
index 4d17654..d9f5874 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5ee194();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5ee194();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.msl
index 084fdc2..03d90d5 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5ee194(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_5ee194(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_5ee194(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5ee194(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5ee194(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5ee194(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5ee194(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.spvasm
index 8d83dee..2b496b2 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5ee194 "textureStore_5ee194"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_5ee194 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_5ee194 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_5ee194
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_5ee194
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_5ee194
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_5ee194
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_5ee194
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.wgsl
index 7cb3373..99b7ae3 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5ee194();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5ee194();
diff --git a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl
index fa25322..c6f755c 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_5f9a49() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5f9a49();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5f9a49();
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 459438d..9156c62 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5f9a49();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5f9a49();
   return;
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 459438d..9156c62 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5f9a49();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5f9a49();
   return;
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 d0b643e..c78a7e9 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_5f9a49() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_5f9a49();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 6e12956..7d21036 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5f9a49(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u);
+void textureStore_5f9a49(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_5f9a49(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5f9a49(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5f9a49(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5f9a49(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5f9a49(tint_symbol_2);
   return;
 }
 
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 0fbfca7..a56280c 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5f9a49 "textureStore_5f9a49"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_5f9a49 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_5f9a49
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_5f9a49
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_5f9a49
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_5f9a49
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 fb329f4..5faec51 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5f9a49();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5f9a49();
diff --git a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl
index 09032cb..d551938 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_602b5a() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_602b5a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_602b5a();
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 09d167c2..6acaf28 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_602b5a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_602b5a();
   return;
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 09d167c2..6acaf28 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_602b5a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_602b5a();
   return;
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 f391359..d7c2dc1 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_602b5a(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u));
+void textureStore_602b5a(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_602b5a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_602b5a(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_602b5a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_602b5a(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_602b5a(tint_symbol_2);
   return;
 }
 
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 84cabb6..208bf04 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_602b5a "textureStore_602b5a"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %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 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_602b5a = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_602b5a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_602b5a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_602b5a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_602b5a
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 28692b5..604d7f5 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_602b5a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_602b5a();
diff --git a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl
index 5293add..71c5379 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_60975f() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_60975f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_60975f();
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 51ce9e4..dba8c46 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_60975f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_60975f();
   return;
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 51ce9e4..dba8c46 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_60975f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_60975f();
   return;
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 a7b16ea..b3f789b 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_60975f() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_60975f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 d2473f0..2ec1cf6 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_60975f(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1);
+void textureStore_60975f(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_60975f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_60975f(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_60975f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_60975f(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_60975f(tint_symbol_2);
   return;
 }
 
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 710cc14..e3e6fc9 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_60975f "textureStore_60975f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_60975f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_60975f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_60975f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_60975f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_60975f
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 ad81fa1..fbdb275 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_60975f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_60975f();
diff --git a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl
index 87bf18b..8b6b08b 100644
--- a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_614b58() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_614b58();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_614b58();
diff --git a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.dxc.hlsl
index c6b304f..3d11b72 100644
--- a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_614b58();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_614b58();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.fxc.hlsl
index c6b304f..3d11b72 100644
--- a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_614b58();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_614b58();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.glsl
index 6d1f0ec..226d1e1 100644
--- a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2DArray arg_0;
-void textureStore_614b58() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_614b58();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.msl
index d0e18f3..83efa5e 100644
--- a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_614b58(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_614b58(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_614b58(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_614b58(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_614b58(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_614b58(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_614b58(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.spvasm
index d992ec5..56caedb 100644
--- a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_614b58 "textureStore_614b58"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_614b58 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_614b58 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_614b58
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_614b58
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_614b58
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_614b58
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_614b58
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.wgsl
index caad44a..d5cdc6b 100644
--- a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_614b58();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_614b58();
diff --git a/test/tint/builtins/gen/literal/textureStore/635584.wgsl b/test/tint/builtins/gen/literal/textureStore/635584.wgsl
index ce7f77c..7926edf 100644
--- a/test/tint/builtins/gen/literal/textureStore/635584.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/635584.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_635584() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_635584();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_635584();
diff --git a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.dxc.hlsl
index f3c6486..207090f 100644
--- a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_635584();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_635584();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.fxc.hlsl
index f3c6486..207090f 100644
--- a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_635584();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_635584();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.msl
index f6d819c..9c537f7 100644
--- a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_635584(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u)); tint_symbol_1.fence();
+void textureStore_635584(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_635584(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_635584(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_635584(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_635584(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_635584(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.spvasm
index 97c4339..83479be 100644
--- a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_635584 "textureStore_635584"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_635584 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_635584 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_635584
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_635584
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_635584
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_635584
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_635584
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.wgsl
index 01356cc..7e35299 100644
--- a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_635584();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_635584();
diff --git a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl
index 7e0dc0f..67bd44e 100644
--- a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_63f34a() {
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_63f34a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_63f34a();
diff --git a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.dxc.hlsl
index 78d5150..72d9fab 100644
--- a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_63f34a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_63f34a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.fxc.hlsl
index 78d5150..72d9fab 100644
--- a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_63f34a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_63f34a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.msl
index a9710e7..18bec77 100644
--- a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_63f34a(texture2d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_63f34a(texture2d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_63f34a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_63f34a(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_63f34a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_63f34a(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_63f34a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.spvasm
index b8e7f93..9192c11 100644
--- a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_63f34a "textureStore_63f34a"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_63f34a = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_63f34a = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_63f34a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_63f34a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_63f34a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_63f34a
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_63f34a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.wgsl
index d38d36b..de632ad 100644
--- a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_63f34a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_63f34a();
diff --git a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl
index c21588c..bf6e1b1 100644
--- a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_646dbc() {
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_646dbc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_646dbc();
diff --git a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.dxc.hlsl
index 2bcbd8a..9d32ea5 100644
--- a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_646dbc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_646dbc();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.fxc.hlsl
index 2bcbd8a..9d32ea5 100644
--- a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_646dbc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_646dbc();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.glsl
index 2f6a6f6..4ef008e 100644
--- a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_646dbc() {
-  imageStore(arg_0, ivec3(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_646dbc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.msl
index d4deb23..2cf58ae 100644
--- a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_646dbc(texture3d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_646dbc(texture3d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_646dbc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_646dbc(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_646dbc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_646dbc(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_646dbc(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.spvasm
index 850e1b2..2a8ae7e 100644
--- a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_646dbc "textureStore_646dbc"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %13 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_646dbc = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_646dbc = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_646dbc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_646dbc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_646dbc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_646dbc
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_646dbc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.wgsl
index dcca15f..f00b354 100644
--- a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_646dbc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_646dbc();
diff --git a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl
index 7ff2339..9b259e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_658a74() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_658a74();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_658a74();
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 671049d..89ff315 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_658a74();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_658a74();
   return;
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 671049d..89ff315 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_658a74();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_658a74();
   return;
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 0a88f99..30c3c3d 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_658a74(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u);
+void textureStore_658a74(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_658a74(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_658a74(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_658a74(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_658a74(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_658a74(tint_symbol_2);
   return;
 }
 
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 146556e..60b5027 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.spvasm
@@ -1,81 +1,55 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_658a74 "textureStore_658a74"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %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
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_658a74 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_658a74
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_658a74
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_658a74
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_658a74
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = 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 79d89b0..e3323fc 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_658a74();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_658a74();
diff --git a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl
index 48fd972..9e294e2 100644
--- a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_65b6aa() {
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_65b6aa();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_65b6aa();
diff --git a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.dxc.hlsl
index 3490d55..69a3dee 100644
--- a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_65b6aa();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_65b6aa();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.fxc.hlsl
index 3490d55..69a3dee 100644
--- a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_65b6aa();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_65b6aa();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.glsl
index 4831c80..4ea30e9 100644
--- a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_65b6aa() {
-  imageStore(arg_0, ivec2(1, 0), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_65b6aa();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.msl
index 9c3a4f5..6039d81 100644
--- a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_65b6aa(texture1d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1)); tint_symbol_1.fence();
+void textureStore_65b6aa(texture1d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_65b6aa(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_65b6aa(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_65b6aa(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_65b6aa(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_65b6aa(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.spvasm
index f889871..a31cf7b 100644
--- a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.spvasm
@@ -1,72 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_65b6aa "textureStore_65b6aa"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %22 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_65b6aa = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %21
+         %13 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_65b6aa = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_65b6aa
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_65b6aa
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_65b6aa
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_65b6aa
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_65b6aa
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.wgsl
index c26ae85..ef77c31 100644
--- a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_65b6aa();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_65b6aa();
diff --git a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl
index 080afba..01d6699 100644
--- a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_65ba8b() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_65ba8b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_65ba8b();
diff --git a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.dxc.hlsl
index dbbe687..fd91fc9 100644
--- a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_65ba8b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_65ba8b();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.fxc.hlsl
index dbbe687..fd91fc9 100644
--- a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_65ba8b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_65ba8b();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.msl
index e45de13..5694604 100644
--- a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_65ba8b(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_65ba8b(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_65ba8b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_65ba8b(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_65ba8b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_65ba8b(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_65ba8b(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.spvasm
index c8d5501..7b7a8da 100644
--- a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_65ba8b "textureStore_65ba8b"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_65ba8b = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_65ba8b = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_65ba8b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_65ba8b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_65ba8b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_65ba8b
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_65ba8b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.wgsl
index e9bc6ce..950af39 100644
--- a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_65ba8b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_65ba8b();
diff --git a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl
index 9cc6ed2..5fe7dbc 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_682fd6() {
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_682fd6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_682fd6();
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 516d9bc..f81c313 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_682fd6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_682fd6();
   return;
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 516d9bc..f81c313 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_682fd6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_682fd6();
   return;
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 5bb5624..8ceb385 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_682fd6(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)));
+void textureStore_682fd6(texture2d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_682fd6(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_682fd6(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_682fd6(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_682fd6(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_682fd6(tint_symbol_2);
   return;
 }
 
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 60b8553..63b1ed8 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.spvasm
@@ -1,77 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_682fd6 "textureStore_682fd6"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_682fd6 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_682fd6
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_682fd6
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_682fd6
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_682fd6
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 9b4623d..45e7aba 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_682fd6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_682fd6();
diff --git a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl
index 2d19cdb..43650c8 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_699a1b() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_699a1b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_699a1b();
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 2369f8b..19bd9db 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_699a1b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_699a1b();
   return;
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 2369f8b..19bd9db 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_699a1b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_699a1b();
   return;
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 0cc5d29..d67019e 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_699a1b() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_699a1b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 b564cde..de9f0ff 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_699a1b(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u);
+void textureStore_699a1b(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_699a1b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_699a1b(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_699a1b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_699a1b(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_699a1b(tint_symbol_2);
   return;
 }
 
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 41ee6a7..a74f710 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_699a1b "textureStore_699a1b"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_699a1b = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_699a1b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_699a1b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_699a1b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_699a1b
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 7856f3d..7370700 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_699a1b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_699a1b();
diff --git a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl
index 97190bd..c03618f 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_6b75c3() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6b75c3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6b75c3();
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 d68d295..c5428ea 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6b75c3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6b75c3();
   return;
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 d68d295..c5428ea 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6b75c3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6b75c3();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.glsl
index f504f30..e0a1f85 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_6b75c3() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_6b75c3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 df1eb89..84dbf73 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6b75c3(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1));
+void textureStore_6b75c3(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_6b75c3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6b75c3(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6b75c3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6b75c3(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6b75c3(tint_symbol_2);
   return;
 }
 
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 24633ee4..6e5f08d 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6b75c3 "textureStore_6b75c3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %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 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_6b75c3 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_6b75c3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_6b75c3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_6b75c3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_6b75c3
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 1619dae..b8a31e6 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6b75c3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6b75c3();
diff --git a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl
index bab82ae..384f907a 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_6b80d2() {
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6b80d2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6b80d2();
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 0ca4048..e91ce83 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6b80d2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6b80d2();
   return;
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 0ca4048..e91ce83 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6b80d2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6b80d2();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.glsl
index 7519527..6fdfa11 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_6b80d2() {
-  imageStore(arg_0, ivec2(1, 0), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_6b80d2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 b93c6f8..82af70e 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6b80d2(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1));
+void textureStore_6b80d2(texture1d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_6b80d2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6b80d2(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6b80d2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6b80d2(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6b80d2(tint_symbol_2);
   return;
 }
 
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 66cc308..6448432 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6b80d2 "textureStore_6b80d2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %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
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %21
+         %13 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_6b80d2 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_6b80d2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_6b80d2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_6b80d2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_6b80d2
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_6b80d2
                OpReturn
                OpFunctionEnd
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 a5b1793..d0b58d4 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6b80d2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6b80d2();
diff --git a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl
index 6429ca2..5cd515a 100644
--- a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_6be9e0() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6be9e0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6be9e0();
diff --git a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.dxc.hlsl
index adda79c..6734fb2 100644
--- a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6be9e0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6be9e0();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.fxc.hlsl
index adda79c..6734fb2 100644
--- a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6be9e0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6be9e0();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.glsl
index 93da992..42d42a3 100644
--- a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image3D arg_0;
-void textureStore_6be9e0() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_6be9e0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.msl
index e03d265..118854f 100644
--- a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6be9e0(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_6be9e0(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_6be9e0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6be9e0(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6be9e0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6be9e0(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6be9e0(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.spvasm
index 7cda048..cd2e62b 100644
--- a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6be9e0 "textureStore_6be9e0"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_6be9e0 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_6be9e0 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_6be9e0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_6be9e0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_6be9e0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_6be9e0
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_6be9e0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.wgsl
index a5124a9..0f61f96 100644
--- a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6be9e0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6be9e0();
diff --git a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl
index d1e4416..2e281ae 100644
--- a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_6c4a70() {
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6c4a70();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6c4a70();
diff --git a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.dxc.hlsl
index 7c40066..604dbd4 100644
--- a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6c4a70();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6c4a70();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.fxc.hlsl
index 7c40066..604dbd4 100644
--- a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6c4a70();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6c4a70();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.glsl
index 978017a..63f79f0 100644
--- a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2D arg_0;
-void textureStore_6c4a70() {
-  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_6c4a70();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.msl
index 45c80cd..3ceacec 100644
--- a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6c4a70(texture2d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_6c4a70(texture2d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_6c4a70(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6c4a70(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6c4a70(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6c4a70(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6c4a70(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.spvasm
index 2a47801..86bce36 100644
--- a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6c4a70 "textureStore_6c4a70"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_6c4a70 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_6c4a70 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_6c4a70
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_6c4a70
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_6c4a70
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_6c4a70
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_6c4a70
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.wgsl
index b585086..345ab71 100644
--- a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6c4a70();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6c4a70();
diff --git a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl
index 1404ed8..faabc55 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_6cff2e() {
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6cff2e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6cff2e();
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 a6f2cbd..f4a82a9 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6cff2e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6cff2e();
   return;
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 a6f2cbd..f4a82a9 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6cff2e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6cff2e();
   return;
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 a04d151..15fdfae 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_6cff2e() {
-  imageStore(arg_0, ivec2(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_6cff2e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 ae8205a..3b58938 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6cff2e(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)));
+void textureStore_6cff2e(texture2d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_6cff2e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6cff2e(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6cff2e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6cff2e(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6cff2e(tint_symbol_2);
   return;
 }
 
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 782456e..676ed76 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6cff2e "textureStore_6cff2e"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_6cff2e = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_6cff2e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_6cff2e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_6cff2e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_6cff2e
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 981078b..0ac7b3c 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6cff2e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6cff2e();
diff --git a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl
index 149bd62..7cf1c1c 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_6d1809() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6d1809();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6d1809();
diff --git a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.dxc.hlsl
index 2f257ca..1b2ba11 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6d1809();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6d1809();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.fxc.hlsl
index 2f257ca..1b2ba11 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6d1809();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6d1809();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.glsl
index 7a33327..35afe8e 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_6d1809() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_6d1809();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.msl
index d08f70a..4204946 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6d1809(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_6d1809(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_6d1809(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6d1809(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6d1809(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6d1809(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6d1809(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.spvasm
index 80a1aab..6be06c8 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.spvasm
@@ -1,76 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6d1809 "textureStore_6d1809"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_6d1809 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_6d1809 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_6d1809
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_6d1809
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_6d1809
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_6d1809
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_6d1809
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.wgsl
index 5d98bcf..43d3aef 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6d1809();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6d1809();
diff --git a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl
index 2d92e1f..68e4053 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_6d259f() {
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6d259f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6d259f();
diff --git a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.dxc.hlsl
index 788a207..54031be 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6d259f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6d259f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.fxc.hlsl
index 788a207..54031be 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6d259f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6d259f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.glsl
index b716181..1eae8b4 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_6d259f() {
-  imageStore(arg_0, ivec2(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_6d259f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.msl
index 8e759db..6ddb7ff 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6d259f(texture2d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_6d259f(texture2d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_6d259f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6d259f(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6d259f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6d259f(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6d259f(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.spvasm
index 8c4ed92..c273250 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6d259f "textureStore_6d259f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_6d259f = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_6d259f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_6d259f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_6d259f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_6d259f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_6d259f
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_6d259f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.wgsl
index 4affde3..ad4182e 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6d259f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6d259f();
diff --git a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl
index 6b26d65..d8e8d04 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_6da692() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6da692();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6da692();
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 ff4cec5..897d802 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6da692();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6da692();
   return;
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 ff4cec5..897d802 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6da692();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6da692();
   return;
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 02409f4..def87d4 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_6da692() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_6da692();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 7651247..0e4ea1f 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6da692(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1);
+void textureStore_6da692(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_6da692(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6da692(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6da692(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6da692(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6da692(tint_symbol_2);
   return;
 }
 
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 47f56f5..62dcd5c 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6da692 "textureStore_6da692"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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
-         %24 = OpCompositeExtract %int %23 0
-         %25 = OpCompositeExtract %int %23 1
-         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_6da692 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_6da692
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_6da692
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_6da692
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_6da692
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 9a9c631..f1b280a 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6da692();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6da692();
diff --git a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl
index 35016a6..b837a24 100644
--- a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_6e6cc0() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6e6cc0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6e6cc0();
diff --git a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.dxc.hlsl
index 3cc0302..7736dda 100644
--- a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6e6cc0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6e6cc0();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.fxc.hlsl
index 3cc0302..7736dda 100644
--- a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6e6cc0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6e6cc0();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.glsl
index fde5419..63d2a24 100644
--- a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2D arg_0;
-void textureStore_6e6cc0() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_6e6cc0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.msl
index d97a96e..1326215 100644
--- a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6e6cc0(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1)); tint_symbol_1.fence();
+void textureStore_6e6cc0(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_6e6cc0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6e6cc0(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6e6cc0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6e6cc0(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6e6cc0(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.spvasm
index 4b1ee43..a7f8243 100644
--- a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.spvasm
@@ -1,71 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6e6cc0 "textureStore_6e6cc0"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_6e6cc0 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_6e6cc0 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_6e6cc0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_6e6cc0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_6e6cc0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_6e6cc0
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_6e6cc0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.wgsl
index 3832e97..e7c1d90 100644
--- a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6e6cc0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6e6cc0();
diff --git a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl
index d7dbffb..86a190e 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_6f0c92() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6f0c92();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6f0c92();
diff --git a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.dxc.hlsl
index 7100f2e..8239b31 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6f0c92();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6f0c92();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.fxc.hlsl
index 7100f2e..8239b31 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6f0c92();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6f0c92();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.msl
index 353309f..d8a380b 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6f0c92(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_6f0c92(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_6f0c92(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6f0c92(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6f0c92(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6f0c92(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6f0c92(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.spvasm
index 3773f86..608cef6 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6f0c92 "textureStore_6f0c92"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_6f0c92 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_6f0c92 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_6f0c92
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_6f0c92
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_6f0c92
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_6f0c92
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_6f0c92
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.wgsl
index 75fff4e..f942489 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6f0c92();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6f0c92();
diff --git a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl
index a616433..10adda2 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_6f3542() {
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6f3542();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6f3542();
diff --git a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.dxc.hlsl
index 01bbd68..95f640f 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6f3542();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6f3542();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.fxc.hlsl
index 01bbd68..95f640f 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6f3542();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6f3542();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.glsl
index a79d37d..275a508 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_6f3542() {
-  imageStore(arg_0, ivec3(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_6f3542();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.msl
index e6f59cc..d09ab14 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6f3542(texture3d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_6f3542(texture3d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_6f3542(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6f3542(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6f3542(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6f3542(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6f3542(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.spvasm
index df00c6e..429f93d 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6f3542 "textureStore_6f3542"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_6f3542 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_6f3542 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_6f3542
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_6f3542
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_6f3542
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_6f3542
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_6f3542
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.wgsl
index f3664ac..3712843 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6f3542();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6f3542();
diff --git a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl
index 404f265..76b1041 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_6f8642() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6f8642();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6f8642();
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 88d6f27..45b495b 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6f8642();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6f8642();
   return;
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 88d6f27..45b495b 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6f8642();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6f8642();
   return;
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 86a7bfa..72fa880 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_6f8642() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_6f8642();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 1432b7b..56ae7e5 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6f8642(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1);
+void textureStore_6f8642(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_6f8642(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6f8642(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6f8642(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6f8642(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6f8642(tint_symbol_2);
   return;
 }
 
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 1e32ffc..c08a86e 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6f8642 "textureStore_6f8642"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_6f8642 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_6f8642
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_6f8642
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_6f8642
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_6f8642
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 b876de3..f075be7 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6f8642();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6f8642();
diff --git a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl
index 09ef268..2f17c34 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_6fb99b() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6fb99b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6fb99b();
diff --git a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.dxc.hlsl
index 6182d0d..b123d6a 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6fb99b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6fb99b();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.fxc.hlsl
index 6182d0d..b123d6a 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6fb99b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6fb99b();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.glsl
index 71aae2e..ee776c7 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image3D arg_0;
-void textureStore_6fb99b() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_6fb99b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.msl
index 6576f92..ee5b966 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6fb99b(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_6fb99b(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_6fb99b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6fb99b(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6fb99b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6fb99b(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6fb99b(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.spvasm
index c21d9d4..e496e0b 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6fb99b "textureStore_6fb99b"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_6fb99b = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_6fb99b = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_6fb99b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_6fb99b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_6fb99b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_6fb99b
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_6fb99b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.wgsl
index b63ca33..16942b9 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6fb99b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6fb99b();
diff --git a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl
index 7bac8e3..1156fa6 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_6fd2b1() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6fd2b1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6fd2b1();
diff --git a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.dxc.hlsl
index 8ce935d..321f65d 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6fd2b1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6fd2b1();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.fxc.hlsl
index 8ce935d..321f65d 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6fd2b1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6fd2b1();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.msl
index 617dcaa..c1fb057 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6fd2b1(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u));
+void textureStore_6fd2b1(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_6fd2b1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6fd2b1(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6fd2b1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6fd2b1(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6fd2b1(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.spvasm
index e0e5a9d..a702d17 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6fd2b1 "textureStore_6fd2b1"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_6fd2b1 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_6fd2b1 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_6fd2b1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_6fd2b1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_6fd2b1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_6fd2b1
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_6fd2b1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.wgsl
index 0cece45..a103531 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6fd2b1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6fd2b1();
diff --git a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl
index 7412723..c102063 100644
--- a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_704e1f() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_704e1f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_704e1f();
diff --git a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.dxc.hlsl
index a24cf44..6f0359e 100644
--- a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_704e1f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_704e1f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.fxc.hlsl
index a24cf44..6f0359e 100644
--- a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_704e1f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_704e1f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.glsl
index 2e9759c..baa1d51 100644
--- a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_704e1f() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_704e1f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.msl
index 67cf9d1..42bd855 100644
--- a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_704e1f(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_704e1f(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_704e1f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_704e1f(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_704e1f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_704e1f(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_704e1f(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.spvasm
index 985653f..21b2c14 100644
--- a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.spvasm
@@ -1,76 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_704e1f "textureStore_704e1f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_704e1f = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_704e1f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_704e1f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_704e1f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_704e1f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_704e1f
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_704e1f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.wgsl
index c290241..4d3a71c 100644
--- a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_704e1f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_704e1f();
diff --git a/test/tint/builtins/gen/literal/textureStore/706236.wgsl b/test/tint/builtins/gen/literal/textureStore/706236.wgsl
index 3d8fe95..7737c37 100644
--- a/test/tint/builtins/gen/literal/textureStore/706236.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/706236.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_706236() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_706236();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_706236();
diff --git a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.dxc.hlsl
index 79f0f00..7a3a9c2 100644
--- a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_706236();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_706236();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.fxc.hlsl
index 79f0f00..7a3a9c2 100644
--- a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_706236();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_706236();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.glsl
index 04e39ce..f923f40 100644
--- a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_706236() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_706236();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.msl
index c09eaa0..d575dc7 100644
--- a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_706236(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1)); tint_symbol_1.fence();
+void textureStore_706236(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_706236(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_706236(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_706236(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_706236(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_706236(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.spvasm
index acdc6be..4847a61 100644
--- a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.spvasm
@@ -1,71 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_706236 "textureStore_706236"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_706236 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_706236 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_706236
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_706236
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_706236
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_706236
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_706236
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.wgsl
index c13528d..981cb76 100644
--- a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_706236();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_706236();
diff --git a/test/tint/builtins/gen/literal/textureStore/706560.wgsl b/test/tint/builtins/gen/literal/textureStore/706560.wgsl
index e5608d3..b6f312b 100644
--- a/test/tint/builtins/gen/literal/textureStore/706560.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/706560.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_706560() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_706560();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_706560();
diff --git a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.dxc.hlsl
index a3a26c4..37465aa 100644
--- a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_706560();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_706560();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.fxc.hlsl
index a3a26c4..37465aa 100644
--- a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_706560();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_706560();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.glsl
index 5329e73..1f54855 100644
--- a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_706560() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_706560();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.msl
index c015598..ef39965 100644
--- a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_706560(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_706560(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_706560(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_706560(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_706560(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_706560(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_706560(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.spvasm
index 6806f6e..aecd6fa 100644
--- a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_706560 "textureStore_706560"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_706560 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_706560 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_706560
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_706560
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_706560
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_706560
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_706560
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.wgsl
index 4ba8d11..ce8e97b 100644
--- a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_706560();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_706560();
diff --git a/test/tint/builtins/gen/literal/textureStore/726472.wgsl b/test/tint/builtins/gen/literal/textureStore/726472.wgsl
index 927db86..ac5ecf4 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_726472() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_726472();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_726472();
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 e1869b5..ddc1dfe 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_726472();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_726472();
   return;
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 e1869b5..ddc1dfe 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_726472();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_726472();
   return;
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 32c1a37..5b41e2f 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_726472(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)));
+void textureStore_726472(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_726472(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_726472(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_726472(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_726472(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_726472(tint_symbol_2);
   return;
 }
 
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 704d910..306bc33 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.spvasm
@@ -1,74 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_726472 "textureStore_726472"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_726472 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_726472
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_726472
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_726472
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_726472
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 b3d9d88..1d3b295 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_726472();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_726472();
diff --git a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl
index 2a34ead..a455488 100644
--- a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_726d6d() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_726d6d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_726d6d();
diff --git a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.dxc.hlsl
index ce2fbce..acb3a08 100644
--- a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_726d6d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_726d6d();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.fxc.hlsl
index ce2fbce..acb3a08 100644
--- a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_726d6d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_726d6d();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.glsl
index a647d43..4cfecbe 100644
--- a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_726d6d() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_726d6d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.msl
index ff1c7de..7f998f7 100644
--- a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_726d6d(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_726d6d(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_726d6d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_726d6d(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_726d6d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_726d6d(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_726d6d(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.spvasm
index 985909f..e7366c7 100644
--- a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_726d6d "textureStore_726d6d"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_726d6d = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_726d6d = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_726d6d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_726d6d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_726d6d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_726d6d
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_726d6d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.wgsl
index 98359de..247b39e 100644
--- a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_726d6d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_726d6d();
diff --git a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl
index 179f793..3701b8d 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_72fa64() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_72fa64();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_72fa64();
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 15933c4..4b70faf 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_72fa64();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_72fa64();
   return;
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 15933c4..4b70faf 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_72fa64();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_72fa64();
   return;
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 21ad721..3cfe679 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_72fa64(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1);
+void textureStore_72fa64(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_72fa64(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_72fa64(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_72fa64(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_72fa64(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_72fa64(tint_symbol_2);
   return;
 }
 
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 cac18fd..5cfe431 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.spvasm
@@ -1,82 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_72fa64 "textureStore_72fa64"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_72fa64 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_72fa64
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_72fa64
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_72fa64
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_72fa64
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 690fc0a..51ebb4f 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_72fa64();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_72fa64();
diff --git a/test/tint/builtins/gen/literal/textureStore/731349.wgsl b/test/tint/builtins/gen/literal/textureStore/731349.wgsl
index 33bb538..ab0c0c7 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_731349() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_731349();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_731349();
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 28d8fb0..5622a24 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_731349();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_731349();
   return;
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 28d8fb0..5622a24 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_731349();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_731349();
   return;
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 fb59422..2f8c8b8 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_731349() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_731349();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 119a556..51f7d2c 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_731349(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)));
+void textureStore_731349(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_731349(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_731349(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_731349(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_731349(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_731349(tint_symbol_2);
   return;
 }
 
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 8bba6aa..ea96a7d 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_731349 "textureStore_731349"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_731349 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_731349
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_731349
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_731349
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_731349
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 db21ca0..1a9fc7b 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_731349();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_731349();
diff --git a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl
index 544bb12..c17a603 100644
--- a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_73a735() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_73a735();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_73a735();
diff --git a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.dxc.hlsl
index fdaa7d3..90bcafa 100644
--- a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_73a735();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_73a735();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.fxc.hlsl
index fdaa7d3..90bcafa 100644
--- a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_73a735();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_73a735();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.glsl
index 39969ca..e08ef2d 100644
--- a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_73a735() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_73a735();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.msl
index b093a44..1991b55 100644
--- a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_73a735(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_73a735(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_73a735(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_73a735(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_73a735(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_73a735(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_73a735(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.spvasm
index a9d9b52..6187b0a 100644
--- a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_73a735 "textureStore_73a735"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_73a735 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_73a735 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_73a735
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_73a735
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_73a735
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_73a735
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_73a735
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.wgsl
index 6f587f8..483403a 100644
--- a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_73a735();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_73a735();
diff --git a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl
index 443d0e8..e267d02 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_73bbbc() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_73bbbc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_73bbbc();
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 ebcc447..ce44b7a 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_73bbbc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_73bbbc();
   return;
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 ebcc447..ce44b7a 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_73bbbc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_73bbbc();
   return;
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 b3830f4..cd239f1 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_73bbbc() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_73bbbc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 bb254bd..8e50451 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_73bbbc(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)));
+void textureStore_73bbbc(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_73bbbc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_73bbbc(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_73bbbc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_73bbbc(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_73bbbc(tint_symbol_2);
   return;
 }
 
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 624ad76..c81859f 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_73bbbc "textureStore_73bbbc"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_73bbbc = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_73bbbc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_73bbbc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_73bbbc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_73bbbc
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 9365f30..79f84cd 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_73bbbc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_73bbbc();
diff --git a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl
index 72f1cba..4015de9 100644
--- a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_74886f() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_74886f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_74886f();
diff --git a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.dxc.hlsl
index 77e17fe..71a62d4 100644
--- a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_74886f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_74886f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.fxc.hlsl
index 77e17fe..71a62d4 100644
--- a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_74886f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_74886f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.msl
index 0b8e3f0..e9f8525 100644
--- a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_74886f(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1));
+void textureStore_74886f(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_74886f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_74886f(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_74886f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_74886f(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_74886f(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.spvasm
index 79ffe47..f0b2f4f 100644
--- a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_74886f "textureStore_74886f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_74886f = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_74886f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_74886f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_74886f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_74886f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_74886f
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_74886f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.wgsl
index e848b48..8cc059b 100644
--- a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_74886f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_74886f();
diff --git a/test/tint/builtins/gen/literal/textureStore/751256.wgsl b/test/tint/builtins/gen/literal/textureStore/751256.wgsl
index d677668..ba2c273 100644
--- a/test/tint/builtins/gen/literal/textureStore/751256.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/751256.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_751256() {
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_751256();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_751256();
diff --git a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.dxc.hlsl
index 8cf91fe..b7d731a 100644
--- a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_751256();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_751256();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.fxc.hlsl
index 8cf91fe..b7d731a 100644
--- a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_751256();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_751256();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.glsl
index 514079c..0e07787 100644
--- a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_751256() {
-  imageStore(arg_0, ivec2(1, 0), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_751256();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.msl
index f3cc461..50f759e 100644
--- a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_751256(texture1d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1)); tint_symbol_1.fence();
+void textureStore_751256(texture1d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_751256(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_751256(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_751256(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_751256(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_751256(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.spvasm
index 08ad26a..fe37f2e 100644
--- a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_751256 "textureStore_751256"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
      %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_751256 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_751256 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_751256
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_751256
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_751256
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_751256
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_751256
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.wgsl
index 817e4ad..a5743a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_751256();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_751256();
diff --git a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl
index 5a979dd..dbc7426 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_752da6() {
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_752da6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_752da6();
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 1e0a86c..c3c0304 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_752da6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_752da6();
   return;
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 1e0a86c..c3c0304 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_752da6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_752da6();
   return;
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 e14830a..588b0c5 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_752da6() {
-  imageStore(arg_0, ivec2(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_752da6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 3c0fbb7..188c049 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_752da6(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)));
+void textureStore_752da6(texture2d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_752da6(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_752da6(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_752da6(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_752da6(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_752da6(tint_symbol_2);
   return;
 }
 
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 ea0c305..d93e448 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_752da6 "textureStore_752da6"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %13 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_752da6 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_752da6
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_752da6
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_752da6
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_752da6
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 c953b69..b562834 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_752da6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_752da6();
diff --git a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl
index 2e2c7d0..e7abc3c 100644
--- a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_75bbd5() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_75bbd5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_75bbd5();
diff --git a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.dxc.hlsl
index f033633..044a2ab 100644
--- a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_75bbd5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_75bbd5();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.fxc.hlsl
index f033633..044a2ab 100644
--- a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_75bbd5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_75bbd5();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.msl
index 7aa316c..a991442 100644
--- a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_75bbd5(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_75bbd5(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_75bbd5(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_75bbd5(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_75bbd5(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_75bbd5(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_75bbd5(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.spvasm
index 329b057..a699ebc 100644
--- a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_75bbd5 "textureStore_75bbd5"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_75bbd5 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_75bbd5 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_75bbd5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_75bbd5
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_75bbd5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_75bbd5
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_75bbd5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.wgsl
index 7074aee..db9b440 100644
--- a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_75bbd5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_75bbd5();
diff --git a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl
index f96a5d3..51682e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_76affd() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_76affd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_76affd();
diff --git a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.dxc.hlsl
index 6518b22..5bbefc3 100644
--- a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_76affd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_76affd();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.fxc.hlsl
index 6518b22..5bbefc3 100644
--- a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_76affd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_76affd();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.glsl
index c401fd0..065cebf 100644
--- a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_76affd() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_76affd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.msl
index ff91fd4..a46a17a 100644
--- a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_76affd(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u);
+void textureStore_76affd(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_76affd(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_76affd(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_76affd(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_76affd(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_76affd(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.spvasm
index 42c9b65..e6dc5dd 100644
--- a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_76affd "textureStore_76affd"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_76affd = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_76affd = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_76affd
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_76affd
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_76affd
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_76affd
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_76affd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.wgsl
index df81226..671bc2e 100644
--- a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_76affd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_76affd();
diff --git a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl
index c264b02..a1351f1 100644
--- a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_7792fa() {
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7792fa();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7792fa();
diff --git a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.dxc.hlsl
index e5fea6a..f466e75 100644
--- a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7792fa();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7792fa();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.fxc.hlsl
index e5fea6a..f466e75 100644
--- a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7792fa();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7792fa();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.msl
index e6fd505..c429580 100644
--- a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7792fa(texture3d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_7792fa(texture3d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_7792fa(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7792fa(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7792fa(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7792fa(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7792fa(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.spvasm
index 3fc595b..6df0a62 100644
--- a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7792fa "textureStore_7792fa"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_7792fa = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_7792fa = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_7792fa
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_7792fa
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_7792fa
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_7792fa
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_7792fa
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.wgsl
index 98452c1..088df2b 100644
--- a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7792fa();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7792fa();
diff --git a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl
index 646dbac..2b8f6b0 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_779d14() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_779d14();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_779d14();
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 fee8045..32969f8 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_779d14();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_779d14();
   return;
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 fee8045..32969f8 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_779d14();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_779d14();
   return;
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 72340e0..1d703b4 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_779d14() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_779d14();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 b53b070..9284aba 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_779d14(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u);
+void textureStore_779d14(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_779d14(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_779d14(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_779d14(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_779d14(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_779d14(tint_symbol_2);
   return;
 }
 
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 76d74c7..cf44e27 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.spvasm
@@ -1,78 +1,49 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_779d14 "textureStore_779d14"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_779d14 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpCompositeConstruct %v3uint %15 %16 %uint_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_779d14
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_779d14
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_779d14
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_779d14
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = 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 e602376..b1f32de 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_779d14();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_779d14();
diff --git a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl
index ca714dc..d9f109e 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_77c0ae() {
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_77c0ae();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_77c0ae();
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 64be4c1..ec3a599 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_77c0ae();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_77c0ae();
   return;
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 64be4c1..ec3a599 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_77c0ae();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_77c0ae();
   return;
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 9d4ca84..423caeb 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_77c0ae() {
-  imageStore(arg_0, ivec2(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_77c0ae();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 cbf7a2e..8f3dcc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_77c0ae(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)));
+void textureStore_77c0ae(texture2d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_77c0ae(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_77c0ae(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_77c0ae(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_77c0ae(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_77c0ae(tint_symbol_2);
   return;
 }
 
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 40e4b5a..bfa4899 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_77c0ae "textureStore_77c0ae"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_77c0ae = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_77c0ae
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_77c0ae
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_77c0ae
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_77c0ae
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 3a10e1e..59d8208 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_77c0ae();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_77c0ae();
diff --git a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl
index d1de4b2..5c9a2f3 100644
--- a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_7b8f86() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7b8f86();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7b8f86();
diff --git a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.dxc.hlsl
index 10b8fbf..e727761 100644
--- a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7b8f86();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7b8f86();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.fxc.hlsl
index 10b8fbf..e727761 100644
--- a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7b8f86();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7b8f86();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.msl
index 21ca4d5..9277866 100644
--- a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7b8f86(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_7b8f86(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_7b8f86(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7b8f86(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7b8f86(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7b8f86(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7b8f86(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.spvasm
index ff714d6..5c048aa 100644
--- a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7b8f86 "textureStore_7b8f86"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_7b8f86 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_7b8f86 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_7b8f86
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_7b8f86
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_7b8f86
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_7b8f86
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_7b8f86
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.wgsl
index 37ae042..0a011d2 100644
--- a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7b8f86();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7b8f86();
diff --git a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl
index 6be04cd..3b9233b 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_7bb211() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7bb211();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7bb211();
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 38bf3dc..e248e99 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7bb211();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7bb211();
   return;
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 38bf3dc..e248e99 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7bb211();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7bb211();
   return;
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 60815c1..009ae3c 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7bb211(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u);
+void textureStore_7bb211(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_7bb211(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7bb211(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7bb211(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7bb211(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7bb211(tint_symbol_2);
   return;
 }
 
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 faf3ec8..aa85cb0 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.spvasm
@@ -1,82 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7bb211 "textureStore_7bb211"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_7bb211 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_7bb211
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_7bb211
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_7bb211
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_7bb211
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 1badce8..f430433 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7bb211();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7bb211();
diff --git a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl
index a764d57..8d29b18 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_7cec8d() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7cec8d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7cec8d();
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 12c0137..dc6c340 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7cec8d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7cec8d();
   return;
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 12c0137..dc6c340 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7cec8d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7cec8d();
   return;
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 ac7c346..db94671 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_7cec8d() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_7cec8d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 235e6f5..fdd1cd8 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7cec8d(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1);
+void textureStore_7cec8d(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_7cec8d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7cec8d(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7cec8d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7cec8d(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7cec8d(tint_symbol_2);
   return;
 }
 
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 572588a..9b90dd4 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.spvasm
@@ -1,78 +1,49 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7cec8d "textureStore_7cec8d"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_7cec8d = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpCompositeConstruct %v3int %15 %16 %int_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_7cec8d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_7cec8d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_7cec8d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_7cec8d
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = 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 2b21dc1..47a51c3 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7cec8d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7cec8d();
diff --git a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl
index 256c6ad..10986c3 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_7cf6e7() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7cf6e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7cf6e7();
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 c716a74..ff00d07 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7cf6e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7cf6e7();
   return;
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 c716a74..ff00d07 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7cf6e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7cf6e7();
   return;
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 9cb4273..221f893 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_7cf6e7() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_7cf6e7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e3638bc..4ab82ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7cf6e7(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)));
+void textureStore_7cf6e7(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_7cf6e7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7cf6e7(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7cf6e7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7cf6e7(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7cf6e7(tint_symbol_2);
   return;
 }
 
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 51603e9..89a6894 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7cf6e7 "textureStore_7cf6e7"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_7cf6e7 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_7cf6e7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_7cf6e7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_7cf6e7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_7cf6e7
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 2a97507..f67f802 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7cf6e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7cf6e7();
diff --git a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl
index 11bd7bb..18139ca 100644
--- a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_7d10e0() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7d10e0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7d10e0();
diff --git a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.dxc.hlsl
index c9caed9..a91cbf3 100644
--- a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7d10e0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7d10e0();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.fxc.hlsl
index c9caed9..a91cbf3 100644
--- a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7d10e0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7d10e0();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.glsl
index a106e27..6c3ad9c 100644
--- a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_7d10e0() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_7d10e0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.msl
index 7cfa2dd..af33fae 100644
--- a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7d10e0(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u)); tint_symbol_1.fence();
+void textureStore_7d10e0(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_7d10e0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7d10e0(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7d10e0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7d10e0(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7d10e0(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.spvasm
index 6c2ee07..78156c3 100644
--- a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.spvasm
@@ -1,71 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7d10e0 "textureStore_7d10e0"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_7d10e0 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_7d10e0 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_7d10e0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_7d10e0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_7d10e0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_7d10e0
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_7d10e0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.wgsl
index abba63c..607c617 100644
--- a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7d10e0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7d10e0();
diff --git a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl
index cfc5331..17e88b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_7dd042() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7dd042();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7dd042();
diff --git a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.dxc.hlsl
index 30195c9..f2bcdb3 100644
--- a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7dd042();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7dd042();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.fxc.hlsl
index 30195c9..f2bcdb3 100644
--- a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7dd042();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7dd042();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.glsl
index 5017271..73166bf 100644
--- a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_7dd042() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_7dd042();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.msl
index 9dd7658..d8e4c81 100644
--- a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7dd042(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_7dd042(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_7dd042(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7dd042(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7dd042(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7dd042(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7dd042(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.spvasm
index f074ac3..9901eca 100644
--- a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.spvasm
@@ -1,77 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7dd042 "textureStore_7dd042"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %28 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_7dd042 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_7dd042 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpCompositeConstruct %v3int %15 %16 %int_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_7dd042
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_7dd042
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_7dd042
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_7dd042
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_7dd042
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.wgsl
index 1f32e01..44cb030 100644
--- a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7dd042();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7dd042();
diff --git a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl
index 7274310..30d2532 100644
--- a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_7e787a() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7e787a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7e787a();
diff --git a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.dxc.hlsl
index 5848579..851e528 100644
--- a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7e787a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7e787a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.fxc.hlsl
index 5848579..851e528 100644
--- a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7e787a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7e787a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.glsl
index 7ec6b8d..2dbb866 100644
--- a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image3D arg_0;
-void textureStore_7e787a() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_7e787a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.msl
index ff6bad4..b120d84 100644
--- a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7e787a(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_7e787a(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_7e787a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7e787a(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7e787a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7e787a(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7e787a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.spvasm
index 46fca34..9cfd2c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7e787a "textureStore_7e787a"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_7e787a = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_7e787a = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_7e787a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_7e787a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_7e787a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_7e787a
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_7e787a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.wgsl
index c8b021d..997ad01 100644
--- a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7e787a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7e787a();
diff --git a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl
index feb4fd3..f598891 100644
--- a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_7f7fae() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7f7fae();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7f7fae();
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 80926e6..59b11ba 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7f7fae();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7f7fae();
   return;
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 80926e6..59b11ba 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7f7fae();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7f7fae();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.glsl
index a4e364f..278036b 100644
--- a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_7f7fae() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_7f7fae();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 af3eb5d..7374c5a 100644
--- a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7f7fae(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1));
+void textureStore_7f7fae(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_7f7fae(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7f7fae(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7f7fae(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7f7fae(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7f7fae(tint_symbol_2);
   return;
 }
 
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 33d5647..aaa15a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7f7fae "textureStore_7f7fae"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %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 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_7f7fae = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_7f7fae
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_7f7fae
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_7f7fae
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_7f7fae
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 c61ad6c..4070eed 100644
--- a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7f7fae();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7f7fae();
diff --git a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl
index 228addc..822361c 100644
--- a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_803a10() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_803a10();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_803a10();
diff --git a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.dxc.hlsl
index 8d71dc4..021d662 100644
--- a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_803a10();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_803a10();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.fxc.hlsl
index 8d71dc4..021d662 100644
--- a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_803a10();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_803a10();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.msl
index 98ef626..478ff6d 100644
--- a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_803a10(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_803a10(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_803a10(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_803a10(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_803a10(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_803a10(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_803a10(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.spvasm
index 46b6308..d6cab87 100644
--- a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_803a10 "textureStore_803a10"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_803a10 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_803a10 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_803a10
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_803a10
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_803a10
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_803a10
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_803a10
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.wgsl
index ba21175..426f9dd 100644
--- a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_803a10();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_803a10();
diff --git a/test/tint/builtins/gen/literal/textureStore/804942.wgsl b/test/tint/builtins/gen/literal/textureStore/804942.wgsl
index 70e2e92..72ab81b 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_804942() {
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_804942();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_804942();
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 26adf7e..a62ba7b 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_804942();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_804942();
   return;
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 26adf7e..a62ba7b 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_804942();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_804942();
   return;
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 45c1294..f18cffe 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_804942() {
-  imageStore(arg_0, ivec2(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_804942();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e70c679..632a4e9 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_804942(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)));
+void textureStore_804942(texture2d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_804942(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_804942(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_804942(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_804942(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_804942(tint_symbol_2);
   return;
 }
 
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 8c2d46b..d217e60 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_804942 "textureStore_804942"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %13 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_804942 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_804942
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_804942
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_804942
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_804942
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 9b4303e..0928f37 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_804942();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_804942();
diff --git a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl
index b0046f3..5a3e5c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_805dae() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_805dae();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_805dae();
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 ed7c8e6..9136201 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_805dae();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_805dae();
   return;
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 ed7c8e6..9136201 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_805dae();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_805dae();
   return;
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 9e66c76..4c3d998 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_805dae() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_805dae();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 63a5354..9485bea 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_805dae(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)));
+void textureStore_805dae(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_805dae(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_805dae(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_805dae(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_805dae(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_805dae(tint_symbol_2);
   return;
 }
 
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 0e9c38e..28d39f8 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_805dae "textureStore_805dae"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_805dae = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_805dae
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_805dae
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_805dae
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_805dae
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 33f56c0..4daf6f2 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_805dae();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_805dae();
diff --git a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl
index 4a7b0cb..88d66c2 100644
--- a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_80bf1d() {
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_80bf1d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_80bf1d();
diff --git a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.dxc.hlsl
index 7de1a17..10d9d56 100644
--- a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_80bf1d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_80bf1d();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.fxc.hlsl
index 7de1a17..10d9d56 100644
--- a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_80bf1d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_80bf1d();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.msl
index 6e66e27..ac2c2a9 100644
--- a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_80bf1d(texture2d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_80bf1d(texture2d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_80bf1d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_80bf1d(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_80bf1d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_80bf1d(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_80bf1d(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.spvasm
index a4c65c3..aeefad3 100644
--- a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_80bf1d "textureStore_80bf1d"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %13 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_80bf1d = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_80bf1d = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_80bf1d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_80bf1d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_80bf1d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_80bf1d
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_80bf1d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.wgsl
index a36b83f..b4f4be3 100644
--- a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_80bf1d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_80bf1d();
diff --git a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl
index f5be2ee..def2033 100644
--- a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_818df6() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_818df6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_818df6();
diff --git a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.dxc.hlsl
index a349d59..220fc3d 100644
--- a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_818df6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_818df6();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.fxc.hlsl
index a349d59..220fc3d 100644
--- a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_818df6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_818df6();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.glsl
index a8c4da8..bc6ff1f 100644
--- a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image3D arg_0;
-void textureStore_818df6() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_818df6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.msl
index 5abbc01..ab79472 100644
--- a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_818df6(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_818df6(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_818df6(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_818df6(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_818df6(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_818df6(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_818df6(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.spvasm
index 7da732a..4ca93ad 100644
--- a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_818df6 "textureStore_818df6"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_818df6 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_818df6 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_818df6
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_818df6
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_818df6
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_818df6
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_818df6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.wgsl
index 52ddd38..4075404 100644
--- a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_818df6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_818df6();
diff --git a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl
index c77cb81..b6059a3 100644
--- a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_81ae31() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_81ae31();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_81ae31();
diff --git a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.dxc.hlsl
index 3119749..ca672ed 100644
--- a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_81ae31();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_81ae31();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.fxc.hlsl
index 3119749..ca672ed 100644
--- a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_81ae31();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_81ae31();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.glsl
index 5321993..590bb8b 100644
--- a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2DArray arg_0;
-void textureStore_81ae31() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_81ae31();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.msl
index 02a8837..65a86a9 100644
--- a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_81ae31(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_81ae31(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_81ae31(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_81ae31(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_81ae31(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_81ae31(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_81ae31(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.spvasm
index 9e3cfc0..1dcc1db 100644
--- a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.spvasm
@@ -1,76 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_81ae31 "textureStore_81ae31"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_81ae31 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_81ae31 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_81ae31
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_81ae31
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_81ae31
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_81ae31
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_81ae31
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.wgsl
index 79a1af7..843209d 100644
--- a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_81ae31();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_81ae31();
diff --git a/test/tint/builtins/gen/literal/textureStore/820272.wgsl b/test/tint/builtins/gen/literal/textureStore/820272.wgsl
index 5a18e34..0f753dc 100644
--- a/test/tint/builtins/gen/literal/textureStore/820272.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/820272.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_820272() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_820272();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_820272();
diff --git a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.dxc.hlsl
index f66c3a8..9cd39fb 100644
--- a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_820272();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_820272();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.fxc.hlsl
index f66c3a8..9cd39fb 100644
--- a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_820272();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_820272();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.msl
index 8eb41d4..749f40e 100644
--- a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_820272(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_820272(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_820272(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_820272(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_820272(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_820272(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_820272(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.spvasm
index aa8f30c..bc967ac 100644
--- a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_820272 "textureStore_820272"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_820272 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_820272 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_820272
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_820272
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_820272
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_820272
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_820272
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.wgsl
index 1af473f..3cd7bea 100644
--- a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_820272();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_820272();
diff --git a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl
index a49f5cc..955328d 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_83bcc1() {
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_83bcc1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_83bcc1();
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 c0e5203..bb81384 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_83bcc1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_83bcc1();
   return;
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 c0e5203..bb81384 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_83bcc1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_83bcc1();
   return;
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 09d5cff..28fd3e9 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_83bcc1(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1));
+void textureStore_83bcc1(texture1d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_83bcc1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_83bcc1(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_83bcc1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_83bcc1(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_83bcc1(tint_symbol_2);
   return;
 }
 
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 14d6958..0157e6a 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_83bcc1 "textureStore_83bcc1"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
      %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 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_83bcc1 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_83bcc1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_83bcc1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_83bcc1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_83bcc1
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 68d5b9b..0ec4b22 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_83bcc1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_83bcc1();
diff --git a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl
index 8014da2..de5ff0f 100644
--- a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_84d435() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_84d435();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_84d435();
diff --git a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.dxc.hlsl
index 4585a7d..13de24d 100644
--- a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_84d435();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_84d435();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.fxc.hlsl
index 4585a7d..13de24d 100644
--- a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_84d435();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_84d435();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.msl
index 6330698..ccedfa3 100644
--- a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_84d435(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_84d435(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_84d435(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_84d435(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_84d435(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_84d435(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_84d435(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.spvasm
index 295ec2f..f68cfd9 100644
--- a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.spvasm
@@ -1,78 +1,49 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_84d435 "textureStore_84d435"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %28 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_84d435 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_84d435 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpCompositeConstruct %v3int %15 %16 %int_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_84d435
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_84d435
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_84d435
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_84d435
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_84d435
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.wgsl
index e5b5d74..55bbecf 100644
--- a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_84d435();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_84d435();
diff --git a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl
index b4da264..08c6169 100644
--- a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_84f4f4() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_84f4f4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_84f4f4();
diff --git a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.dxc.hlsl
index bf41d64..3dae04e 100644
--- a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_84f4f4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_84f4f4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.fxc.hlsl
index bf41d64..3dae04e 100644
--- a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_84f4f4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_84f4f4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.glsl
index c544813..d74b21f 100644
--- a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_84f4f4() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_84f4f4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.msl
index 78409c0..4a74c95 100644
--- a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_84f4f4(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_84f4f4(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_84f4f4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_84f4f4(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_84f4f4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_84f4f4(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_84f4f4(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.spvasm
index c4b0914..e1b4208 100644
--- a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_84f4f4 "textureStore_84f4f4"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_84f4f4 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_84f4f4 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_84f4f4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_84f4f4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_84f4f4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_84f4f4
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_84f4f4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.wgsl
index 8c6241e..8c61abd 100644
--- a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_84f4f4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_84f4f4();
diff --git a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl
index 52dc706..afa5967 100644
--- a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8676c9() {
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8676c9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8676c9();
diff --git a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.dxc.hlsl
index d2c9696..98fd0cf 100644
--- a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8676c9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8676c9();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.fxc.hlsl
index d2c9696..98fd0cf 100644
--- a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8676c9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8676c9();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.glsl
index 97f953c..e68b0a2 100644
--- a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2D arg_0;
-void textureStore_8676c9() {
-  imageStore(arg_0, ivec2(1, 0), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_8676c9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.msl
index 6207d96..aeea710 100644
--- a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8676c9(texture1d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1)); tint_symbol_1.fence();
+void textureStore_8676c9(texture1d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_8676c9(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8676c9(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8676c9(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8676c9(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8676c9(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.spvasm
index 32f08c9..632e219 100644
--- a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8676c9 "textureStore_8676c9"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
      %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_8676c9 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_8676c9 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_8676c9
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_8676c9
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8676c9
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_8676c9
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_8676c9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.wgsl
index 2da3405..b772863 100644
--- a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8676c9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8676c9();
diff --git a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl
index cb78c90..b21c3d5 100644
--- a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_86f713() {
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_86f713();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_86f713();
diff --git a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.dxc.hlsl
index 876a668..35ef576 100644
--- a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_86f713();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_86f713();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.fxc.hlsl
index 876a668..35ef576 100644
--- a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_86f713();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_86f713();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.glsl
index 6df50b6..2d55c15 100644
--- a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage3D arg_0;
-void textureStore_86f713() {
-  imageStore(arg_0, ivec3(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_86f713();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.msl
index e038414..75cbd58 100644
--- a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_86f713(texture3d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_86f713(texture3d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_86f713(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_86f713(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_86f713(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_86f713(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_86f713(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.spvasm
index e3b406a..42b3806 100644
--- a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_86f713 "textureStore_86f713"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %13 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_86f713 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_86f713 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_86f713
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_86f713
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_86f713
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_86f713
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_86f713
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.wgsl
index ab7155a..7ed7de8 100644
--- a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_86f713();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_86f713();
diff --git a/test/tint/builtins/gen/literal/textureStore/872747.wgsl b/test/tint/builtins/gen/literal/textureStore/872747.wgsl
index 9c9c002..e144ce8 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_872747() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_872747();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_872747();
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 cb4b350..d41e2e3 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_872747();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_872747();
   return;
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 cb4b350..d41e2e3 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_872747();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_872747();
   return;
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 a019adb..1f507a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_872747(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1));
+void textureStore_872747(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_872747(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_872747(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_872747(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_872747(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_872747(tint_symbol_2);
   return;
 }
 
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 d2782d1..062384b 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_872747 "textureStore_872747"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %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 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_872747 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_872747
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_872747
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_872747
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_872747
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 e4ef2e3..9af2d8e 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_872747();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_872747();
diff --git a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl
index 22903ba..299f965 100644
--- a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_877c92() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_877c92();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_877c92();
diff --git a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.dxc.hlsl
index 19d3a90..e9cc8b8 100644
--- a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_877c92();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_877c92();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.fxc.hlsl
index 19d3a90..e9cc8b8 100644
--- a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_877c92();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_877c92();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.glsl
index 7a8b6a0..ad6c40f 100644
--- a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_877c92() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_877c92();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.msl
index ab1a06b..c112d28 100644
--- a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_877c92(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1)); tint_symbol_1.fence();
+void textureStore_877c92(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_877c92(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_877c92(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_877c92(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_877c92(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_877c92(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.spvasm
index b745ab5..953db7d 100644
--- a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.spvasm
@@ -1,71 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_877c92 "textureStore_877c92"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_877c92 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_877c92 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_877c92
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_877c92
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_877c92
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_877c92
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_877c92
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.wgsl
index 2fd1b53..2d15b5b 100644
--- a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_877c92();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_877c92();
diff --git a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl
index 6b294b2..cc2ab5e 100644
--- a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8815b1() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8815b1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8815b1();
diff --git a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.dxc.hlsl
index 1115f76..4c0c084 100644
--- a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8815b1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8815b1();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.fxc.hlsl
index 1115f76..4c0c084 100644
--- a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8815b1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8815b1();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.glsl
index 9616dd3..118872a 100644
--- a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_8815b1() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_8815b1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.msl
index 32c27e0..e5e335d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8815b1(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_8815b1(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_8815b1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8815b1(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8815b1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8815b1(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8815b1(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.spvasm
index ed526b8..6ab1704 100644
--- a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8815b1 "textureStore_8815b1"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_8815b1 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_8815b1 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8815b1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_8815b1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_8815b1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_8815b1
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_8815b1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.wgsl
index a895389..9de0790 100644
--- a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8815b1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8815b1();
diff --git a/test/tint/builtins/gen/literal/textureStore/885921.wgsl b/test/tint/builtins/gen/literal/textureStore/885921.wgsl
index 3f4703e..d69f05d 100644
--- a/test/tint/builtins/gen/literal/textureStore/885921.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/885921.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_885921() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_885921();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_885921();
diff --git a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.dxc.hlsl
index 7ac9c65..2359218 100644
--- a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_885921();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_885921();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.fxc.hlsl
index 7ac9c65..2359218 100644
--- a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_885921();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_885921();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.glsl
index 6e35992..4ffc860 100644
--- a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_885921() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_885921();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.msl
index b50accd..eaf1162 100644
--- a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_885921(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_885921(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_885921(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_885921(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_885921(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_885921(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_885921(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.spvasm
index ae20deb..7d4e595 100644
--- a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_885921 "textureStore_885921"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_885921 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_885921 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_885921
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_885921
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_885921
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_885921
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_885921
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.wgsl
index 2e14fe2..ea053f1 100644
--- a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_885921();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_885921();
diff --git a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl
index e2b4df2..b090e24 100644
--- a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_88ce7e() {
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_88ce7e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_88ce7e();
diff --git a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.dxc.hlsl
index 5600d35..4fe0044 100644
--- a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_88ce7e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_88ce7e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.fxc.hlsl
index 5600d35..4fe0044 100644
--- a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_88ce7e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_88ce7e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.glsl
index 8fb7b38..7f60d30 100644
--- a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage3D arg_0;
-void textureStore_88ce7e() {
-  imageStore(arg_0, ivec3(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_88ce7e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.msl
index 7d03d31..b965c60 100644
--- a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_88ce7e(texture3d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_88ce7e(texture3d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_88ce7e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_88ce7e(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_88ce7e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_88ce7e(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_88ce7e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.spvasm
index b4e8dd7..3c75811 100644
--- a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_88ce7e "textureStore_88ce7e"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %13 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_88ce7e = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_88ce7e = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_88ce7e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_88ce7e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_88ce7e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_88ce7e
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_88ce7e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.wgsl
index 50fcb03..42152fe 100644
--- a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_88ce7e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_88ce7e();
diff --git a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl
index 07aa635..cb28b50 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8a16b0() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a16b0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a16b0();
diff --git a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.dxc.hlsl
index 75ec708..0ce653b 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a16b0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a16b0();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.fxc.hlsl
index 75ec708..0ce653b 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a16b0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a16b0();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.glsl
index b3ad122..6e1c849 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2DArray arg_0;
-void textureStore_8a16b0() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_8a16b0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.msl
index cbde78e..d65b17b 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8a16b0(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_8a16b0(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_8a16b0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8a16b0(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8a16b0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8a16b0(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8a16b0(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.spvasm
index 27a72bf..f55176c 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.spvasm
@@ -1,79 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8a16b0 "textureStore_8a16b0"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_8a16b0 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %24 = OpCompositeExtract %int %23 0
-         %25 = OpCompositeExtract %int %23 1
-         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_8a16b0 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_8a16b0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_8a16b0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_8a16b0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_8a16b0
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_8a16b0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.wgsl
index f631b80..174361e 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a16b0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a16b0();
diff --git a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl
index d32258f..49d261c 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8a46ff() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a46ff();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a46ff();
diff --git a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.dxc.hlsl
index af18a00..b6cdb0c 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a46ff();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a46ff();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.fxc.hlsl
index af18a00..b6cdb0c 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a46ff();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a46ff();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.glsl
index 6b22937..5c4fe2f 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_8a46ff() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_8a46ff();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.msl
index 71aaacd..4e2543c 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8a46ff(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_8a46ff(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_8a46ff(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8a46ff(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8a46ff(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8a46ff(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8a46ff(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.spvasm
index 2c4076e..3c5a7f8 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8a46ff "textureStore_8a46ff"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_8a46ff = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_8a46ff = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_8a46ff
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_8a46ff
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_8a46ff
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_8a46ff
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_8a46ff
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.wgsl
index be02ec8..2138cb2 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a46ff();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a46ff();
diff --git a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl
index b1d7ea8..1451957 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8a85b9() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a85b9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a85b9();
diff --git a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.dxc.hlsl
index 67672d4..af532c5 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a85b9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a85b9();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.fxc.hlsl
index 67672d4..af532c5 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a85b9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a85b9();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.glsl
index 8e2c255..2b2a5db 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_8a85b9() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_8a85b9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.msl
index 0230c94..e5bacff 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8a85b9(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_8a85b9(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_8a85b9(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8a85b9(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8a85b9(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8a85b9(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8a85b9(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.spvasm
index 62bd25c..4e516d3 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.spvasm
@@ -1,77 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8a85b9 "textureStore_8a85b9"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %28 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_8a85b9 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_8a85b9 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpCompositeConstruct %v3int %15 %16 %int_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_8a85b9
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_8a85b9
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_8a85b9
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_8a85b9
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_8a85b9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.wgsl
index 738ac85..6b5577b 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a85b9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a85b9();
diff --git a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl
index 098e449..a02fb8a 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8a8681() {
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a8681();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a8681();
diff --git a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.dxc.hlsl
index 0644a27..2cb048d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a8681();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a8681();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.fxc.hlsl
index 0644a27..2cb048d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a8681();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a8681();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.msl
index ba09eb6..5a4b15f 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8a8681(texture2d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_8a8681(texture2d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_8a8681(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8a8681(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8a8681(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8a8681(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8a8681(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.spvasm
index 8d20648..6ba0e1d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8a8681 "textureStore_8a8681"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %13 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_8a8681 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_8a8681 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_8a8681
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_8a8681
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8a8681
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_8a8681
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_8a8681
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.wgsl
index f3d42e9..713c49d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a8681();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a8681();
diff --git a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl
index 0c3bb89..75c41df 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8ae0bc() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ae0bc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ae0bc();
diff --git a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.dxc.hlsl
index 8da8152..ed34d74 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ae0bc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ae0bc();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.fxc.hlsl
index 8da8152..ed34d74 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ae0bc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ae0bc();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.glsl
index 4061e7e..9e99f7c 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_8ae0bc() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_8ae0bc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.msl
index a9de46e..b89a058 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8ae0bc(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_8ae0bc(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_8ae0bc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8ae0bc(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8ae0bc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8ae0bc(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8ae0bc(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.spvasm
index 2fc7a39..45cc065 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.spvasm
@@ -1,79 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8ae0bc "textureStore_8ae0bc"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_8ae0bc = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_8ae0bc = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8ae0bc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_8ae0bc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_8ae0bc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_8ae0bc
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_8ae0bc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.wgsl
index 616737b..980e58b 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ae0bc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ae0bc();
diff --git a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl
index 15cd6f6..5f9a301 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8b9310() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8b9310();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8b9310();
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 f95b6c6..dfa8e68 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8b9310();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8b9310();
   return;
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 f95b6c6..dfa8e68 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8b9310();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8b9310();
   return;
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 b8a143e..6a29822 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image3D arg_0;
-void textureStore_8b9310() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_8b9310();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 3aa438e..0c11cea 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8b9310(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u)));
+void textureStore_8b9310(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_8b9310(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8b9310(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8b9310(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8b9310(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8b9310(tint_symbol_2);
   return;
 }
 
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 156cfba..7bd9f31 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8b9310 "textureStore_8b9310"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_8b9310 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_8b9310
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_8b9310
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_8b9310
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_8b9310
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 a889fbc..0f8b5d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8b9310();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8b9310();
diff --git a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl
index ab6375f..ad8701f 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8bb287() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8bb287();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8bb287();
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 286cab7..9071234 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8bb287();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8bb287();
   return;
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 286cab7..9071234 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8bb287();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8bb287();
   return;
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 f2468f6..bc4a560 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_8bb287() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_8bb287();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 161933ad..2f5c7e2 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8bb287(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u);
+void textureStore_8bb287(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_8bb287(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8bb287(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8bb287(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8bb287(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8bb287(tint_symbol_2);
   return;
 }
 
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 e5cbdf9..8284af3 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8bb287 "textureStore_8bb287"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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
-         %24 = OpCompositeExtract %uint %23 0
-         %25 = OpCompositeExtract %uint %23 1
-         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_8bb287 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_8bb287
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_8bb287
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_8bb287
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_8bb287
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 cb13b94..6ff55e6 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8bb287();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8bb287();
diff --git a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl
index f9a8b57..15227dc 100644
--- a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8c76e9() {
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8c76e9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8c76e9();
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 6a0a07f..828c51e 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8c76e9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8c76e9();
   return;
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 6a0a07f..828c51e 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8c76e9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8c76e9();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.glsl
index a2d24f5..45aa094 100644
--- a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_8c76e9() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_8c76e9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 bb42d24..7123017 100644
--- a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8c76e9(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1u));
+void textureStore_8c76e9(texture1d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_8c76e9(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8c76e9(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8c76e9(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8c76e9(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8c76e9(tint_symbol_2);
   return;
 }
 
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 b5bcf8b..7d916e4 100644
--- a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8c76e9 "textureStore_8c76e9"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
       %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 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_8c76e9 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_8c76e9
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_8c76e9
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8c76e9
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_8c76e9
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 463506d..6728da2 100644
--- a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8c76e9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8c76e9();
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl
index fafd1fb..18a50a4 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_8cd611() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8cd611();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8cd611();
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.dxc.hlsl
index d2ae9e9..11b7a4b 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8cd611();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8cd611();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.fxc.hlsl
index d2ae9e9..11b7a4b 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8cd611();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8cd611();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.msl
index 0208b73..03555e2 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8cd611(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u)));
+void textureStore_8cd611(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_8cd611(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8cd611(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8cd611(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8cd611(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8cd611(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.spvasm
index b1dcd97..01a380e 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.spvasm
@@ -1,74 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8cd611 "textureStore_8cd611"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_8cd611 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_8cd611 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_8cd611
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_8cd611
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_8cd611
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_8cd611
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_8cd611
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.wgsl
index d7da4ce..4f6ea98 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8cd611();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8cd611();
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl
index 4d1690f..69849b3 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8cd841() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8cd841();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8cd841();
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.dxc.hlsl
index 6a203cd..80f3d94 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8cd841();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8cd841();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.fxc.hlsl
index 6a203cd..80f3d94 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8cd841();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8cd841();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.glsl
index cccea40..91f3fe7 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2DArray arg_0;
-void textureStore_8cd841() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_8cd841();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.msl
index f35b487..92a7a88 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8cd841(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_8cd841(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_8cd841(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8cd841(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8cd841(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8cd841(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8cd841(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.spvasm
index 3527178..2dcbf3f 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8cd841 "textureStore_8cd841"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_8cd841 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_8cd841 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8cd841
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_8cd841
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_8cd841
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_8cd841
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_8cd841
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.wgsl
index 8607d84..771066c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8cd841();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8cd841();
diff --git a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl
index 039d2c8..84675a3 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8dc54f() {
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8dc54f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8dc54f();
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 698b373..24ea2a5 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8dc54f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8dc54f();
   return;
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 698b373..24ea2a5 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8dc54f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8dc54f();
   return;
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 c093c2c..3505913 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_8dc54f() {
-  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_8dc54f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 1e8931d..8f033bd 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8dc54f(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)));
+void textureStore_8dc54f(texture2d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_8dc54f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8dc54f(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8dc54f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8dc54f(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8dc54f(tint_symbol_2);
   return;
 }
 
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 fad4e33..4441c7d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8dc54f "textureStore_8dc54f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %13 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_8dc54f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_8dc54f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_8dc54f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8dc54f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_8dc54f
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 9e1854b..56cc19d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8dc54f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8dc54f();
diff --git a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl
index 1a5ccaa..ddcadd2 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8e0479() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8e0479();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8e0479();
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 1d6b383..282ffec 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8e0479();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8e0479();
   return;
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 1d6b383..282ffec 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8e0479();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8e0479();
   return;
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 7d95d23..fcf6a23 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_8e0479() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_8e0479();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 978ed33..ba9be4b 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8e0479(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1);
+void textureStore_8e0479(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_8e0479(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8e0479(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8e0479(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8e0479(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8e0479(tint_symbol_2);
   return;
 }
 
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 9f289d7..5135294 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8e0479 "textureStore_8e0479"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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
-         %24 = OpCompositeExtract %int %23 0
-         %25 = OpCompositeExtract %int %23 1
-         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_8e0479 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_8e0479
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_8e0479
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_8e0479
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_8e0479
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 af55e34..731762d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8e0479();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8e0479();
diff --git a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl
index d598299..70d50aa 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8ebdc9() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ebdc9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ebdc9();
diff --git a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.dxc.hlsl
index ea8dc58..21aaebb 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ebdc9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ebdc9();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.fxc.hlsl
index ea8dc58..21aaebb 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ebdc9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ebdc9();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.glsl
index f58fb3a..27f555f 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_8ebdc9() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_8ebdc9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.msl
index b8c76ce..748f05e 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8ebdc9(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_8ebdc9(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_8ebdc9(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8ebdc9(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8ebdc9(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8ebdc9(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8ebdc9(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.spvasm
index 147b8db..891e0b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.spvasm
@@ -1,76 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8ebdc9 "textureStore_8ebdc9"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_8ebdc9 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_8ebdc9 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_8ebdc9
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_8ebdc9
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_8ebdc9
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_8ebdc9
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_8ebdc9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.wgsl
index 35b00ab..69ee0fa 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ebdc9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ebdc9();
diff --git a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl
index f3d5298..8465fa2 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8ed9f8() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ed9f8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ed9f8();
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 fd7be8c..bb9b045 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ed9f8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ed9f8();
   return;
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 fd7be8c..bb9b045 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ed9f8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ed9f8();
   return;
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 73fe131..c134a77 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_8ed9f8() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_8ed9f8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 ab487c6..a6541f7 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8ed9f8(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u)));
+void textureStore_8ed9f8(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_8ed9f8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8ed9f8(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8ed9f8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8ed9f8(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8ed9f8(tint_symbol_2);
   return;
 }
 
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 a9dbbc1..e87ef19 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8ed9f8 "textureStore_8ed9f8"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_8ed9f8 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_8ed9f8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_8ed9f8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_8ed9f8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_8ed9f8
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 ff44f47..51559ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ed9f8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ed9f8();
diff --git a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl
index 36f7f71..654c1b2 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8f71a1() {
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8f71a1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8f71a1();
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 48bccfe..baf32bf 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8f71a1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8f71a1();
   return;
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 48bccfe..baf32bf 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8f71a1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8f71a1();
   return;
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 19c5a81..0ec503b 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage3D arg_0;
-void textureStore_8f71a1() {
-  imageStore(arg_0, ivec3(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_8f71a1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 1e99a20..3f597e0 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8f71a1(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(int3(1)));
+void textureStore_8f71a1(texture3d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_8f71a1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8f71a1(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8f71a1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8f71a1(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8f71a1(tint_symbol_2);
   return;
 }
 
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 ab44bfc..41cdbfb 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8f71a1 "textureStore_8f71a1"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %13 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_8f71a1 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_8f71a1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_8f71a1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8f71a1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_8f71a1
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 1a31821..9ded31a 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8f71a1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8f71a1();
diff --git a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl
index 9648a03..13b6c82 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_8ff674() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ff674();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ff674();
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 c5e92de..198ffbb 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ff674();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ff674();
   return;
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 c5e92de..198ffbb 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ff674();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ff674();
   return;
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 b4678c6..1bf7720 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_8ff674() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_8ff674();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 36217d2..3393f1a 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8ff674(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u);
+void textureStore_8ff674(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_8ff674(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8ff674(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8ff674(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8ff674(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8ff674(tint_symbol_2);
   return;
 }
 
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 af1a902..13c9adf 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8ff674 "textureStore_8ff674"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_8ff674 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8ff674
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_8ff674
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_8ff674
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_8ff674
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 16987ba..42c71ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ff674();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ff674();
diff --git a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl
index a85565e..eeb3708 100644
--- a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_90960e() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_90960e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_90960e();
diff --git a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.dxc.hlsl
index 83d699c..003dd16 100644
--- a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_90960e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_90960e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.fxc.hlsl
index 83d699c..003dd16 100644
--- a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_90960e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_90960e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.glsl
index 462f14e..57727b6 100644
--- a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_90960e() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_90960e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.msl
index c786491..3b87841 100644
--- a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_90960e(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1)); tint_symbol_1.fence();
+void textureStore_90960e(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_90960e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_90960e(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_90960e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_90960e(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_90960e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.spvasm
index 59b06df..9fc2b8b 100644
--- a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.spvasm
@@ -1,71 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_90960e "textureStore_90960e"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_90960e = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_90960e = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_90960e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_90960e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_90960e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_90960e
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_90960e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.wgsl
index da36ddb..8e650e9 100644
--- a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_90960e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_90960e();
diff --git a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl
index 6129d75..876f435 100644
--- a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_90a553() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_90a553();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_90a553();
diff --git a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.dxc.hlsl
index cab9d52..e33f3fe 100644
--- a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_90a553();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_90a553();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.fxc.hlsl
index cab9d52..e33f3fe 100644
--- a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_90a553();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_90a553();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.glsl
index 5f10313..31a7249 100644
--- a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_90a553() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_90a553();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.msl
index 2444602..540f34d 100644
--- a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_90a553(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_90a553(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_90a553(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_90a553(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_90a553(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_90a553(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_90a553(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.spvasm
index 5b3a2c2..0eb98eb 100644
--- a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_90a553 "textureStore_90a553"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_90a553 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_90a553 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_90a553
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_90a553
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_90a553
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_90a553
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_90a553
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.wgsl
index e52ab21..18836d7 100644
--- a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_90a553();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_90a553();
diff --git a/test/tint/builtins/gen/literal/textureStore/958353.wgsl b/test/tint/builtins/gen/literal/textureStore/958353.wgsl
index a278d81..fab013e 100644
--- a/test/tint/builtins/gen/literal/textureStore/958353.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/958353.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_958353() {
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_958353();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_958353();
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 a58afd1..b5a0d782 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_958353();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_958353();
   return;
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 a58afd1..b5a0d782 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_958353();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_958353();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.glsl
index ad3d927..7f8c99a 100644
--- a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_958353() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_958353();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 fe84ee9..319a0fa 100644
--- a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_958353(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1u));
+void textureStore_958353(texture1d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_958353(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_958353(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_958353(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_958353(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_958353(tint_symbol_2);
   return;
 }
 
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 44b3868..2a52c6f 100644
--- a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_958353 "textureStore_958353"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
       %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 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_958353 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_958353
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_958353
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_958353
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_958353
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 6bb8ca5..435c1cd 100644
--- a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_958353();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_958353();
diff --git a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl
index 12bc3af..da1ec6b 100644
--- a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_959d94() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_959d94();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_959d94();
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 d886e39..dd45d2c 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_959d94();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_959d94();
   return;
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 d886e39..dd45d2c 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_959d94();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_959d94();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.glsl
index 512e235..39a70da 100644
--- a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_959d94() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_959d94();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 07d78e2..719f475 100644
--- a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_959d94(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u));
+void textureStore_959d94(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_959d94(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_959d94(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_959d94(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_959d94(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_959d94(tint_symbol_2);
   return;
 }
 
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 c724ae5..dd5f3c5 100644
--- a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_959d94 "textureStore_959d94"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %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 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_959d94 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_959d94
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_959d94
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_959d94
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_959d94
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 afe005c..5bfe4cd 100644
--- a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_959d94();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_959d94();
diff --git a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl
index 44b72c0..7de60dc 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_95e452() {
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_95e452();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_95e452();
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 3626014..b210b3c 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_95e452();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_95e452();
   return;
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 3626014..b210b3c 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_95e452();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_95e452();
   return;
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 45776f8..8ec3bbc 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_95e452() {
-  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_95e452();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 ead888b..b1abe6d 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_95e452(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)));
+void textureStore_95e452(texture2d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_95e452(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_95e452(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_95e452(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_95e452(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_95e452(tint_symbol_2);
   return;
 }
 
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 ccb6e02..ead5ef2 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_95e452 "textureStore_95e452"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_95e452 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_95e452
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_95e452
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_95e452
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_95e452
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 0d427eb..0f3b604 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_95e452();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_95e452();
diff --git a/test/tint/builtins/gen/literal/textureStore/969534.wgsl b/test/tint/builtins/gen/literal/textureStore/969534.wgsl
index 3806c9f..54dd5f6 100644
--- a/test/tint/builtins/gen/literal/textureStore/969534.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/969534.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_969534() {
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_969534();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_969534();
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 6e96b77..6e8eb7d 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_969534();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_969534();
   return;
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 6e96b77..6e8eb7d 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_969534();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_969534();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.glsl
index 943f5654a..fde6231 100644
--- a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_969534() {
-  imageStore(arg_0, ivec2(1, 0), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_969534();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 24eabf8..03ee6b4 100644
--- a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_969534(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1));
+void textureStore_969534(texture1d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_969534(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_969534(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_969534(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_969534(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_969534(tint_symbol_2);
   return;
 }
 
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 aec627b..eec251a 100644
--- a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_969534 "textureStore_969534"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %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
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %21
+         %13 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_969534 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_969534
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_969534
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_969534
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_969534
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_969534
                OpReturn
                OpFunctionEnd
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 19b6ea0..f99ca36 100644
--- a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_969534();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_969534();
diff --git a/test/tint/builtins/gen/literal/textureStore/976636.wgsl b/test/tint/builtins/gen/literal/textureStore/976636.wgsl
index baa7032..4777044 100644
--- a/test/tint/builtins/gen/literal/textureStore/976636.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/976636.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_976636() {
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_976636();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_976636();
diff --git a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.dxc.hlsl
index ab63044..b9079c8 100644
--- a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_976636();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_976636();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.fxc.hlsl
index ab63044..b9079c8 100644
--- a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_976636();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_976636();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.glsl
index dcc5c54..71637fa 100644
--- a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_976636() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_976636();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.msl
index 8d31acb..3b6f656 100644
--- a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_976636(texture1d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1u)); tint_symbol_1.fence();
+void textureStore_976636(texture1d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_976636(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_976636(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_976636(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_976636(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_976636(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.spvasm
index b35423d..381823d 100644
--- a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_976636 "textureStore_976636"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
       %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_976636 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_976636 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_976636
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_976636
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_976636
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_976636
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_976636
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.wgsl
index 060a928..4e00593 100644
--- a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_976636();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_976636();
diff --git a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl
index c23b39a..8343988 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_9938b7() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9938b7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9938b7();
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 2f2d292..27ed836 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9938b7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9938b7();
   return;
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 2f2d292..27ed836 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9938b7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9938b7();
   return;
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 a760690..cb4011e 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_9938b7() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_9938b7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 3ae47d1..2af620e 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9938b7(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u);
+void textureStore_9938b7(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_9938b7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9938b7(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9938b7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9938b7(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9938b7(tint_symbol_2);
   return;
 }
 
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 021bbf2..350fd62 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9938b7 "textureStore_9938b7"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_9938b7 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_9938b7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_9938b7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_9938b7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_9938b7
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 9c01171..09e1aba 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9938b7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9938b7();
diff --git a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl
index 87fcd9a..08de659 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_9a3ecc() {
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9a3ecc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9a3ecc();
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 3994f3e..662500b 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9a3ecc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9a3ecc();
   return;
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 3994f3e..662500b 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9a3ecc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9a3ecc();
   return;
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 02971a2..3c18c96 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_9a3ecc() {
-  imageStore(arg_0, ivec3(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_9a3ecc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 46065b8..bc70e7e 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9a3ecc(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(int3(1)));
+void textureStore_9a3ecc(texture3d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_9a3ecc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9a3ecc(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9a3ecc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9a3ecc(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9a3ecc(tint_symbol_2);
   return;
 }
 
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 f380281..1c41ae3 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9a3ecc "textureStore_9a3ecc"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %13 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_9a3ecc = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_9a3ecc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_9a3ecc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_9a3ecc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_9a3ecc
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 bda3795..4535674 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9a3ecc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9a3ecc();
diff --git a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl
index ae95188..a9ed810 100644
--- a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_9aedd3() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9aedd3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9aedd3();
diff --git a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.dxc.hlsl
index a9f4c1aa..3415a3d 100644
--- a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9aedd3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9aedd3();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.fxc.hlsl
index a9f4c1aa..3415a3d 100644
--- a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9aedd3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9aedd3();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.glsl
index 66d9106..67b8500 100644
--- a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_9aedd3() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_9aedd3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.msl
index 1dcdfeb..64de270 100644
--- a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9aedd3(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u)));
+void textureStore_9aedd3(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_9aedd3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9aedd3(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9aedd3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9aedd3(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9aedd3(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.spvasm
index 11a4f07..dd4eb03 100644
--- a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9aedd3 "textureStore_9aedd3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_9aedd3 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_9aedd3 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_9aedd3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_9aedd3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_9aedd3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_9aedd3
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_9aedd3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.wgsl
index 97fb727..f74696c 100644
--- a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9aedd3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9aedd3();
diff --git a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl
index 7c9603e..558b0b6 100644
--- a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_9ba5c1() {
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9ba5c1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9ba5c1();
diff --git a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.dxc.hlsl
index 6b8462e..cb7ac96 100644
--- a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9ba5c1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9ba5c1();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.fxc.hlsl
index 6b8462e..cb7ac96 100644
--- a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9ba5c1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9ba5c1();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.glsl
index 5dc1312..d7a8b80 100644
--- a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_9ba5c1() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_9ba5c1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.msl
index cdd096a..06a3d04 100644
--- a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9ba5c1(texture1d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1u)); tint_symbol_1.fence();
+void textureStore_9ba5c1(texture1d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_9ba5c1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9ba5c1(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9ba5c1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9ba5c1(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9ba5c1(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.spvasm
index 2e6a9ec..c9bf3bd 100644
--- a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.spvasm
@@ -1,72 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9ba5c1 "textureStore_9ba5c1"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %22 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_9ba5c1 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %21
+         %13 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_9ba5c1 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_9ba5c1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_9ba5c1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_9ba5c1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_9ba5c1
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_9ba5c1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.wgsl
index 66a6c16..f4ff229 100644
--- a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9ba5c1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9ba5c1();
diff --git a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl
index 2ee616e..23d4bb2 100644
--- a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_9cea9e() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9cea9e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9cea9e();
diff --git a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.dxc.hlsl
index ece3e27..727d8bf 100644
--- a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9cea9e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9cea9e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.fxc.hlsl
index ece3e27..727d8bf 100644
--- a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9cea9e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9cea9e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.glsl
index 9d45434..38b7ffd 100644
--- a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_9cea9e() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_9cea9e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.msl
index bce4090..8f92cf4 100644
--- a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9cea9e(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_9cea9e(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_9cea9e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9cea9e(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9cea9e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9cea9e(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9cea9e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.spvasm
index 6ed1c45..525b37a 100644
--- a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9cea9e "textureStore_9cea9e"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_9cea9e = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_9cea9e = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_9cea9e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_9cea9e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_9cea9e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_9cea9e
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_9cea9e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.wgsl
index 9fa47f5..39aa3e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9cea9e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9cea9e();
diff --git a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl
index 61c437f..2e73ec9 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_9d7c62() {
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9d7c62();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9d7c62();
diff --git a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.dxc.hlsl
index b194847..0ca1dd1 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9d7c62();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9d7c62();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.fxc.hlsl
index b194847..0ca1dd1 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9d7c62();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9d7c62();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.glsl
index 3bfb675..c9383c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_9d7c62() {
-  imageStore(arg_0, ivec2(1, 0), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_9d7c62();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.msl
index 1ba59cd..578c57b 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9d7c62(texture1d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1)); tint_symbol_1.fence();
+void textureStore_9d7c62(texture1d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_9d7c62(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9d7c62(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9d7c62(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9d7c62(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9d7c62(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.spvasm
index 0f348a1..8a8e659 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9d7c62 "textureStore_9d7c62"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
      %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_9d7c62 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_9d7c62 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_9d7c62
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_9d7c62
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_9d7c62
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_9d7c62
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_9d7c62
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.wgsl
index 64a15c8..8435248 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9d7c62();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9d7c62();
diff --git a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl
index 946a146..b75bd92 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_9d8668() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9d8668();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9d8668();
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 0a0014e..a4cf6b5 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9d8668();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9d8668();
   return;
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 0a0014e..a4cf6b5 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9d8668();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9d8668();
   return;
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 5dc10f7..ae44a5a 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_9d8668() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_9d8668();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e29a571..da1d41a 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9d8668(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u);
+void textureStore_9d8668(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_9d8668(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9d8668(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9d8668(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9d8668(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9d8668(tint_symbol_2);
   return;
 }
 
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 5e76d8e..0c50932 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9d8668 "textureStore_9d8668"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %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
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_9d8668 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_9d8668
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_9d8668
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_9d8668
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_9d8668
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = 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 7143481..8e3adb9 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9d8668();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9d8668();
diff --git a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl
index 1382719..b3d60ad 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_9d9cd5() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9d9cd5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9d9cd5();
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 d14020b..62e4219 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9d9cd5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9d9cd5();
   return;
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 d14020b..62e4219 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9d9cd5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9d9cd5();
   return;
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 7acc4b6..4eb1af7 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_9d9cd5() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_9d9cd5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 c22478b..aac2f4c 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9d9cd5(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1);
+void textureStore_9d9cd5(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_9d9cd5(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9d9cd5(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9d9cd5(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9d9cd5(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9d9cd5(tint_symbol_2);
   return;
 }
 
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 b83df32..4866b54 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9d9cd5 "textureStore_9d9cd5"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_9d9cd5 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_9d9cd5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_9d9cd5
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_9d9cd5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_9d9cd5
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 abf7d5a..5b99fa3 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9d9cd5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9d9cd5();
diff --git a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl
index 1918283..318950b 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_9e3ec5() {
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9e3ec5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9e3ec5();
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 04e3fcd..96c5d11 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9e3ec5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9e3ec5();
   return;
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 04e3fcd..96c5d11 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9e3ec5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9e3ec5();
   return;
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 fbdc94e..35f6a9a 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_9e3ec5() {
-  imageStore(arg_0, ivec2(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_9e3ec5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 c010dce..762bdde 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9e3ec5(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)));
+void textureStore_9e3ec5(texture2d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_9e3ec5(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9e3ec5(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9e3ec5(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9e3ec5(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9e3ec5(tint_symbol_2);
   return;
 }
 
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 11456a7..1df6d30 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9e3ec5 "textureStore_9e3ec5"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %13 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_9e3ec5 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_9e3ec5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_9e3ec5
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_9e3ec5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_9e3ec5
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 d7d82b45..2acf105 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9e3ec5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9e3ec5();
diff --git a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl
index a60ca5d..c0a37e1 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_9e5bc2() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9e5bc2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9e5bc2();
diff --git a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.dxc.hlsl
index 0b61171..e40a429 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9e5bc2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9e5bc2();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.fxc.hlsl
index 0b61171..e40a429 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9e5bc2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9e5bc2();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.msl
index 94856b0..3410ad5 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9e5bc2(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)));
+void textureStore_9e5bc2(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_9e5bc2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9e5bc2(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9e5bc2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9e5bc2(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9e5bc2(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.spvasm
index 88a744d..e7cb3ad 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.spvasm
@@ -1,74 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9e5bc2 "textureStore_9e5bc2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_9e5bc2 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_9e5bc2 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_9e5bc2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_9e5bc2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_9e5bc2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_9e5bc2
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_9e5bc2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.wgsl
index 6659dbd..0b68dcc 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9e5bc2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9e5bc2();
diff --git a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl
index d8eed8e..4b47e4f 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_9f5318() {
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9f5318();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9f5318();
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 515d24e..4cda88fd 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9f5318();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9f5318();
   return;
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 515d24e..4cda88fd 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9f5318();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9f5318();
   return;
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 ca32724..4ad6520 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9f5318(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)));
+void textureStore_9f5318(texture2d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_9f5318(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9f5318(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9f5318(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9f5318(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9f5318(tint_symbol_2);
   return;
 }
 
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 f835ad6..68f4f3f 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.spvasm
@@ -1,77 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9f5318 "textureStore_9f5318"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_9f5318 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_9f5318
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_9f5318
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_9f5318
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_9f5318
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 0423d90..8fee57c 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9f5318();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9f5318();
diff --git a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl
index c42865e..2ce56a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_9f7cea() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9f7cea();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9f7cea();
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 d44f88e..e7dfc69 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9f7cea();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9f7cea();
   return;
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 d44f88e..e7dfc69 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9f7cea();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9f7cea();
   return;
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 544ef47..76bffa7 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_9f7cea() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_9f7cea();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 fa5cafb..0ef59bd 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9f7cea(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u);
+void textureStore_9f7cea(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_9f7cea(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9f7cea(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9f7cea(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9f7cea(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9f7cea(tint_symbol_2);
   return;
 }
 
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 46c70ef..f07412b 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9f7cea "textureStore_9f7cea"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_9f7cea = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_9f7cea
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_9f7cea
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_9f7cea
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_9f7cea
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 5c720b7..f6b0a53 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9f7cea();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9f7cea();
diff --git a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl
index cd79eb9..046c692 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a0022f() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a0022f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a0022f();
diff --git a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.dxc.hlsl
index 7115f13..3f8f5e7 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a0022f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a0022f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.fxc.hlsl
index 7115f13..3f8f5e7 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a0022f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a0022f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.glsl
index 47e42d0..4817496 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2DArray arg_0;
-void textureStore_a0022f() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_a0022f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.msl
index 19c3c21..8e136bf 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a0022f(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_a0022f(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_a0022f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a0022f(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a0022f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a0022f(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a0022f(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.spvasm
index e36a508..a1b2a35 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.spvasm
@@ -1,77 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a0022f "textureStore_a0022f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %28 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_a0022f = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_a0022f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpCompositeConstruct %v3int %15 %16 %int_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_a0022f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_a0022f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_a0022f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_a0022f
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_a0022f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.wgsl
index ad4ffd3..3a400b2 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a0022f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a0022f();
diff --git a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl
index 4cfc3e1..d1fa405 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a0f96e() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a0f96e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a0f96e();
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 6acb220..acf376a 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a0f96e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a0f96e();
   return;
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 6acb220..acf376a 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a0f96e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a0f96e();
   return;
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 7915498..49ae17b 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_a0f96e() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_a0f96e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 ce17fe2..483bf04 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a0f96e(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u);
+void textureStore_a0f96e(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_a0f96e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a0f96e(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a0f96e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a0f96e(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a0f96e(tint_symbol_2);
   return;
 }
 
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 17183b6..42a5575 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a0f96e "textureStore_a0f96e"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_a0f96e = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_a0f96e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_a0f96e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_a0f96e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_a0f96e
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 3137e47..5ebd9b6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a0f96e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a0f96e();
diff --git a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl
index f51eb8f..220f869 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a1352c() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a1352c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a1352c();
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 2a7ca63..a5bdff2 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a1352c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a1352c();
   return;
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 2a7ca63..a5bdff2 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a1352c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a1352c();
   return;
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 133bc80..71a0bfd 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_a1352c() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_a1352c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 3d3ba49..40db983 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a1352c(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u);
+void textureStore_a1352c(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_a1352c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a1352c(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a1352c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a1352c(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a1352c(tint_symbol_2);
   return;
 }
 
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 b9dc68a..503d5a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a1352c "textureStore_a1352c"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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
-         %24 = OpCompositeExtract %uint %23 0
-         %25 = OpCompositeExtract %uint %23 1
-         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_a1352c = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_a1352c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_a1352c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_a1352c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_a1352c
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 b4f55b4..dc56f9b 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a1352c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a1352c();
diff --git a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl
index ccd7fea..e3d2d8a 100644
--- a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a14041() {
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a14041();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a14041();
diff --git a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.dxc.hlsl
index 786b9f68..0eb6983 100644
--- a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a14041();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a14041();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.fxc.hlsl
index 786b9f68..0eb6983 100644
--- a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a14041();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a14041();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.glsl
index 1a4e86a..0d3826d 100644
--- a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_a14041() {
-  imageStore(arg_0, ivec2(1, 0), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_a14041();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.msl
index 6848053..f7ae7ac 100644
--- a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a14041(texture1d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1)); tint_symbol_1.fence();
+void textureStore_a14041(texture1d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_a14041(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a14041(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a14041(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a14041(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a14041(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.spvasm
index 878a196..b57566c 100644
--- a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.spvasm
@@ -1,72 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a14041 "textureStore_a14041"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %22 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_a14041 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %21
+         %13 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_a14041 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_a14041
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_a14041
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_a14041
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_a14041
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_a14041
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.wgsl
index e0c7310..382b86f 100644
--- a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a14041();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a14041();
diff --git a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl
index 6009e27..8a1b0a0 100644
--- a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a165b8() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a165b8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a165b8();
diff --git a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.dxc.hlsl
index e8d56ab..267b7fc 100644
--- a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a165b8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a165b8();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.fxc.hlsl
index e8d56ab..267b7fc 100644
--- a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a165b8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a165b8();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.glsl
index 0c32352..7e3508e 100644
--- a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_a165b8() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_a165b8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.msl
index a1df221..8fa6b17 100644
--- a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a165b8(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)));
+void textureStore_a165b8(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_a165b8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a165b8(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a165b8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a165b8(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a165b8(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.spvasm
index 22a5ca5..ff086e1 100644
--- a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a165b8 "textureStore_a165b8"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_a165b8 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_a165b8 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_a165b8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_a165b8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_a165b8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_a165b8
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_a165b8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.wgsl
index 4418cf6..65a04da 100644
--- a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a165b8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a165b8();
diff --git a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl
index d2909ff..48a0411 100644
--- a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a19a12() {
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a19a12();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a19a12();
diff --git a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.dxc.hlsl
index ca13129..db841fa 100644
--- a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a19a12();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a19a12();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.fxc.hlsl
index ca13129..db841fa 100644
--- a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a19a12();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a19a12();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.glsl
index 9b4f0c1..36c259c 100644
--- a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_a19a12() {
-  imageStore(arg_0, ivec3(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_a19a12();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.msl
index 932d87c..7ce7b7a 100644
--- a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a19a12(texture3d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_a19a12(texture3d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_a19a12(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a19a12(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a19a12(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a19a12(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a19a12(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.spvasm
index 89dfe1f..6fd3743 100644
--- a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a19a12 "textureStore_a19a12"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_a19a12 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_a19a12 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_a19a12
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_a19a12
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_a19a12
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_a19a12
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_a19a12
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.wgsl
index 4c18745..1970444 100644
--- a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a19a12();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a19a12();
diff --git a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl
index c7afdc1..726a3ae 100644
--- a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a24491() {
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a24491();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a24491();
diff --git a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.dxc.hlsl
index 6f6b9a9..43f27c5 100644
--- a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a24491();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a24491();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.fxc.hlsl
index 6f6b9a9..43f27c5 100644
--- a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a24491();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a24491();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.glsl
index 4a6853b..65eb668 100644
--- a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_a24491() {
-  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_a24491();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.msl
index 6c93df5..09117c2 100644
--- a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a24491(texture2d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_a24491(texture2d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_a24491(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a24491(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a24491(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a24491(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a24491(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.spvasm
index d61e314..e6fa12e 100644
--- a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a24491 "textureStore_a24491"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %13 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_a24491 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_a24491 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_a24491
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_a24491
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_a24491
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_a24491
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_a24491
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.wgsl
index 298d938..c911625 100644
--- a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a24491();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a24491();
diff --git a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl
index 58219ec..897a67f 100644
--- a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a4c338() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a4c338();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a4c338();
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 5176865..0775fac 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a4c338();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a4c338();
   return;
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 5176865..0775fac 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a4c338();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a4c338();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.glsl
index 448d4ae..fd14c6f 100644
--- a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_a4c338() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_a4c338();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 519937c..1a2e21d 100644
--- a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a4c338(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u));
+void textureStore_a4c338(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_a4c338(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a4c338(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a4c338(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a4c338(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a4c338(tint_symbol_2);
   return;
 }
 
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 f5e8d49..bb8ade5 100644
--- a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a4c338 "textureStore_a4c338"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %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 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_a4c338 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_a4c338
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_a4c338
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_a4c338
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_a4c338
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 2402733..b8d2ef1 100644
--- a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a4c338();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a4c338();
diff --git a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl
index 7ae6644..08c0ddf 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a5b88e() {
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a5b88e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a5b88e();
diff --git a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.dxc.hlsl
index ca31ee2..f8a806f 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a5b88e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a5b88e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.fxc.hlsl
index ca31ee2..f8a806f 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a5b88e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a5b88e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.glsl
index 5ce777f..52f1653 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage3D arg_0;
-void textureStore_a5b88e() {
-  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_a5b88e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.msl
index 17379f5..5ae5d99 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a5b88e(texture3d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_a5b88e(texture3d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_a5b88e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a5b88e(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a5b88e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a5b88e(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a5b88e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.spvasm
index 28087a8..dc8d915 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a5b88e "textureStore_a5b88e"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_a5b88e = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_a5b88e = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_a5b88e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_a5b88e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_a5b88e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_a5b88e
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_a5b88e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.wgsl
index 6d21023..b38c2e7 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a5b88e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a5b88e();
diff --git a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl
index 476a89be..664a7d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a5c925() {
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a5c925();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a5c925();
diff --git a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.dxc.hlsl
index 1f23f76..d89d804 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a5c925();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a5c925();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.fxc.hlsl
index 1f23f76..d89d804 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a5c925();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a5c925();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.glsl
index 86bd85f..1bfdb8f 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage3D arg_0;
-void textureStore_a5c925() {
-  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_a5c925();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.msl
index de71bb3..1720c36 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a5c925(texture3d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_a5c925(texture3d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_a5c925(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a5c925(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a5c925(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a5c925(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a5c925(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.spvasm
index 3da12ad..9c0593d 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a5c925 "textureStore_a5c925"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_a5c925 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_a5c925 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_a5c925
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_a5c925
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_a5c925
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_a5c925
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_a5c925
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.wgsl
index afbbde0..b911357 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a5c925();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a5c925();
diff --git a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl
index c68ce1f..24fc2c2 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a5e80d() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a5e80d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a5e80d();
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 1e02922..e82d25a 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a5e80d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a5e80d();
   return;
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 1e02922..e82d25a 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a5e80d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a5e80d();
   return;
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 238c0c3..cefbbe2 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image3D arg_0;
-void textureStore_a5e80d() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_a5e80d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e62a4b4..e7fa3e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a5e80d(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u)));
+void textureStore_a5e80d(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_a5e80d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a5e80d(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a5e80d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a5e80d(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a5e80d(tint_symbol_2);
   return;
 }
 
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 51445f9..ff208d6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a5e80d "textureStore_a5e80d"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_a5e80d = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_a5e80d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_a5e80d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_a5e80d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_a5e80d
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 b73edc0..a736a47 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a5e80d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a5e80d();
diff --git a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl
index 8344d29..5b417eb 100644
--- a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a66ca4() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a66ca4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a66ca4();
diff --git a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.dxc.hlsl
index bdbca1c..5655053 100644
--- a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a66ca4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a66ca4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.fxc.hlsl
index bdbca1c..5655053 100644
--- a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a66ca4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a66ca4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.glsl
index 1e1c9fe..ae95a76 100644
--- a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_a66ca4() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_a66ca4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.msl
index db2bde4..35a33fb 100644
--- a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a66ca4(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_a66ca4(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_a66ca4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a66ca4(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a66ca4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a66ca4(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a66ca4(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.spvasm
index 3e25500..83f4a12 100644
--- a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a66ca4 "textureStore_a66ca4"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_a66ca4 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_a66ca4 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_a66ca4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_a66ca4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_a66ca4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_a66ca4
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_a66ca4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.wgsl
index 2ac97c0e..f05c377 100644
--- a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a66ca4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a66ca4();
diff --git a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl
index 8882646..8ca945e 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a6a986() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a6a986();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a6a986();
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 061ded5..0109a52 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a6a986();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a6a986();
   return;
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 061ded5..0109a52 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a6a986();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a6a986();
   return;
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 e84fc0b..fae91d8 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_a6a986() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_a6a986();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 a0fbb24..1d4ff0e 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a6a986(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1);
+void textureStore_a6a986(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_a6a986(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a6a986(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a6a986(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a6a986(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a6a986(tint_symbol_2);
   return;
 }
 
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 8ca98d1..d5de9e6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a6a986 "textureStore_a6a986"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %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
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_a6a986 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_a6a986
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_a6a986
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_a6a986
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_a6a986
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = 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 c3c9122..6326811 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a6a986();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a6a986();
diff --git a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl
index 6483dce..831f1fb 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a6e78f() {
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a6e78f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a6e78f();
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 1581545..dce8b5a 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a6e78f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a6e78f();
   return;
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 1581545..dce8b5a 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a6e78f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a6e78f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.glsl
index 5d1daf4..99d1b72 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_a6e78f() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_a6e78f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 6c096f8..8da0880 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a6e78f(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1u));
+void textureStore_a6e78f(texture1d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_a6e78f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a6e78f(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a6e78f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a6e78f(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a6e78f(tint_symbol_2);
   return;
 }
 
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 2aa2d9f..16f63bc 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a6e78f "textureStore_a6e78f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %21
+         %13 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_a6e78f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_a6e78f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_a6e78f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_a6e78f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_a6e78f
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_a6e78f
                OpReturn
                OpFunctionEnd
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 6ba26bd..2359310 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a6e78f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a6e78f();
diff --git a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl
index a17a10b..536a1e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a702b6() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a702b6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a702b6();
diff --git a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.dxc.hlsl
index 93ec315..281bdff 100644
--- a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a702b6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a702b6();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.fxc.hlsl
index 93ec315..281bdff 100644
--- a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a702b6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a702b6();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.msl
index 8b4f743..42814ef 100644
--- a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a702b6(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_a702b6(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_a702b6(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a702b6(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a702b6(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a702b6(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a702b6(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.spvasm
index 6bb8e86..f94bbb8 100644
--- a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a702b6 "textureStore_a702b6"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_a702b6 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %24 = OpCompositeExtract %int %23 0
-         %25 = OpCompositeExtract %int %23 1
-         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_a702b6 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_a702b6
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_a702b6
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_a702b6
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_a702b6
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_a702b6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.wgsl
index 0d62187..8a525d8 100644
--- a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a702b6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a702b6();
diff --git a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl
index 317b277..5ab4037 100644
--- a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_a7fc47() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a7fc47();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a7fc47();
diff --git a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.dxc.hlsl
index dda40b7..f64c526 100644
--- a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a7fc47();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a7fc47();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.fxc.hlsl
index dda40b7..f64c526 100644
--- a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a7fc47();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a7fc47();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.msl
index 4606735..4091e74 100644
--- a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a7fc47(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u)); tint_symbol_1.fence();
+void textureStore_a7fc47(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_a7fc47(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a7fc47(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a7fc47(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a7fc47(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a7fc47(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.spvasm
index 54508b7..855b9e4 100644
--- a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a7fc47 "textureStore_a7fc47"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_a7fc47 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_a7fc47 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_a7fc47
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_a7fc47
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_a7fc47
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_a7fc47
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_a7fc47
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.wgsl
index 7497da8..9c80d01 100644
--- a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a7fc47();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a7fc47();
diff --git a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl
index 73be648..4e55a81 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a9298c() {
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a9298c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a9298c();
diff --git a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.dxc.hlsl
index a20d10c..7bdb9ab 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a9298c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a9298c();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.fxc.hlsl
index a20d10c..7bdb9ab 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a9298c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a9298c();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.msl
index 65667e2..95f4a16 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a9298c(texture1d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1u)); tint_symbol_1.fence();
+void textureStore_a9298c(texture1d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_a9298c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a9298c(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a9298c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a9298c(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a9298c(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.spvasm
index 1acd8b5..9ac9cf7 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a9298c "textureStore_a9298c"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %22 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_a9298c = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %21
+         %13 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_a9298c = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_a9298c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_a9298c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_a9298c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_a9298c
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_a9298c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.wgsl
index 7cc6428..d4e1030 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a9298c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a9298c();
diff --git a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl
index 8263394..bebb45d 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_a9426c() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a9426c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a9426c();
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 33ee55c..386a698 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a9426c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a9426c();
   return;
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 33ee55c..386a698 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a9426c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a9426c();
   return;
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 0b8a748..d7e373d 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_a9426c() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_a9426c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 a6335ca..4d757af 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a9426c(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u);
+void textureStore_a9426c(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_a9426c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a9426c(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a9426c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a9426c(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a9426c(tint_symbol_2);
   return;
 }
 
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 9d2d116a..4f2014c 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.spvasm
@@ -1,78 +1,49 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a9426c "textureStore_a9426c"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_a9426c = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpCompositeConstruct %v3uint %15 %16 %uint_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_a9426c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_a9426c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_a9426c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_a9426c
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = 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 989163f..206c117 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a9426c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a9426c();
diff --git a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl
index 6c9da02..b0379ae 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_ab03b6() {
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ab03b6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ab03b6();
diff --git a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.dxc.hlsl
index 0236e10..1f2739e 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ab03b6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ab03b6();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.fxc.hlsl
index 0236e10..1f2739e 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ab03b6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ab03b6();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.glsl
index 4e76d2d..16a0c83 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_ab03b6() {
-  imageStore(arg_0, ivec3(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_ab03b6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.msl
index 97ec0be..ebe8898 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ab03b6(texture3d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_ab03b6(texture3d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_ab03b6(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ab03b6(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ab03b6(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ab03b6(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ab03b6(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.spvasm
index 265dcbe..1776bd1 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ab03b6 "textureStore_ab03b6"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_ab03b6 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_ab03b6 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_ab03b6
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_ab03b6
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_ab03b6
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_ab03b6
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_ab03b6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.wgsl
index 9b0c95f..d8bdbb6 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ab03b6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ab03b6();
diff --git a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl
index 749e581..1ce23e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_ab788e() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ab788e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ab788e();
diff --git a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.dxc.hlsl
index 267a0cd..0ce258d 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ab788e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ab788e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.fxc.hlsl
index 267a0cd..0ce258d 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ab788e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ab788e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.msl
index 22c55e5..a2c048c 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ab788e(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_ab788e(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_ab788e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ab788e(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ab788e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ab788e(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ab788e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.spvasm
index 788e1a2..5606ef0 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ab788e "textureStore_ab788e"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_ab788e = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_ab788e = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_ab788e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_ab788e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_ab788e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_ab788e
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_ab788e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.wgsl
index c15c7d5..7a2804a 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ab788e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ab788e();
diff --git a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl
index 8935db6..91972db 100644
--- a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_abdd21() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_abdd21();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_abdd21();
diff --git a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.dxc.hlsl
index 4bd9207..31f5c4b 100644
--- a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_abdd21();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_abdd21();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.fxc.hlsl
index 4bd9207..31f5c4b 100644
--- a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_abdd21();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_abdd21();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.glsl
index 6c751f1..466ebcf 100644
--- a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2DArray arg_0;
-void textureStore_abdd21() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_abdd21();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.msl
index e607140..b3f484e 100644
--- a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_abdd21(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_abdd21(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_abdd21(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_abdd21(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_abdd21(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_abdd21(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_abdd21(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.spvasm
index b4d84f9..6e0fbcc 100644
--- a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.spvasm
@@ -1,77 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_abdd21 "textureStore_abdd21"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %28 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_abdd21 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_abdd21 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpCompositeConstruct %v3uint %15 %16 %uint_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_abdd21
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_abdd21
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_abdd21
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_abdd21
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_abdd21
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.wgsl
index 45349b5..209d48e 100644
--- a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_abdd21();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_abdd21();
diff --git a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl
index 52bcf12..ba6571f 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_ac0a55() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ac0a55();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ac0a55();
diff --git a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.dxc.hlsl
index 35e761e..171d225 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ac0a55();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ac0a55();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.fxc.hlsl
index 35e761e..171d225 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ac0a55();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ac0a55();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.glsl
index 54ea237..34fa4b9 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_ac0a55() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_ac0a55();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.msl
index d7e1241..673783d 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ac0a55(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_ac0a55(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_ac0a55(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ac0a55(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ac0a55(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ac0a55(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ac0a55(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.spvasm
index 184052e..7fe5014 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.spvasm
@@ -1,77 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ac0a55 "textureStore_ac0a55"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %28 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_ac0a55 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_ac0a55 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpCompositeConstruct %v3uint %15 %16 %uint_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_ac0a55
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_ac0a55
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_ac0a55
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_ac0a55
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_ac0a55
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.wgsl
index 99bc6b3..162339d 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ac0a55();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ac0a55();
diff --git a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl
index fd2cacc..e30364e 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_ac67aa() {
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ac67aa();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ac67aa();
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 9040a13..e933822 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ac67aa();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ac67aa();
   return;
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 9040a13..e933822 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ac67aa();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ac67aa();
   return;
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 1c5794d..f54a72c 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ac67aa(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(int3(1)));
+void textureStore_ac67aa(texture3d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_ac67aa(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ac67aa(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ac67aa(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ac67aa(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ac67aa(tint_symbol_2);
   return;
 }
 
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 49759cd0..10a529b 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.spvasm
@@ -1,77 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ac67aa "textureStore_ac67aa"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_ac67aa = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_ac67aa
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_ac67aa
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_ac67aa
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_ac67aa
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 c7dabf6..38d6e90 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ac67aa();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ac67aa();
diff --git a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl
index ca39045..4ebf93d 100644
--- a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_ae6a2a() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ae6a2a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ae6a2a();
diff --git a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.dxc.hlsl
index b1186cd..618d17a 100644
--- a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ae6a2a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ae6a2a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.fxc.hlsl
index b1186cd..618d17a 100644
--- a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ae6a2a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ae6a2a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.msl
index 32aff1b..32196c9 100644
--- a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ae6a2a(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_ae6a2a(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_ae6a2a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ae6a2a(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ae6a2a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ae6a2a(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ae6a2a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.spvasm
index b628767..628da2a 100644
--- a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ae6a2a "textureStore_ae6a2a"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_ae6a2a = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_ae6a2a = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_ae6a2a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_ae6a2a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_ae6a2a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_ae6a2a
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_ae6a2a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.wgsl
index a4d1da2..ee23ac4 100644
--- a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ae6a2a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ae6a2a();
diff --git a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl
index c54740c..fe1d82e 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_aeb38a() {
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_aeb38a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_aeb38a();
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 ea1242f..ae5f6b6 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_aeb38a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_aeb38a();
   return;
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 ea1242f..ae5f6b6 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_aeb38a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_aeb38a();
   return;
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 813418e..01ea157 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_aeb38a() {
-  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_aeb38a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e3850a7..f77db37 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_aeb38a(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)));
+void textureStore_aeb38a(texture2d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_aeb38a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_aeb38a(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_aeb38a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_aeb38a(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_aeb38a(tint_symbol_2);
   return;
 }
 
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 7a929b4..ee6cfd8 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_aeb38a "textureStore_aeb38a"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %13 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_aeb38a = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_aeb38a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_aeb38a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_aeb38a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_aeb38a
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 da77ab2..0bdce76 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_aeb38a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_aeb38a();
diff --git a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl
index ed7fa55..78f586a 100644
--- a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_aedea3() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_aedea3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_aedea3();
diff --git a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.dxc.hlsl
index 44efbdb..4eee6cd 100644
--- a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_aedea3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_aedea3();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.fxc.hlsl
index 44efbdb..4eee6cd 100644
--- a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_aedea3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_aedea3();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.glsl
index 230131a..506184f 100644
--- a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_aedea3() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_aedea3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.msl
index a722741..33b0f2b 100644
--- a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_aedea3(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_aedea3(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_aedea3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_aedea3(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_aedea3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_aedea3(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_aedea3(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.spvasm
index 7aed7c7..a1ac4b0 100644
--- a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_aedea3 "textureStore_aedea3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_aedea3 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_aedea3 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_aedea3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_aedea3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_aedea3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_aedea3
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_aedea3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.wgsl
index a484555..9547ed3 100644
--- a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_aedea3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_aedea3();
diff --git a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl
index de9f2ff..fd15288 100644
--- a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_b16110() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b16110();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b16110();
diff --git a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.dxc.hlsl
index 50a6da8..948187e 100644
--- a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b16110();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b16110();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.fxc.hlsl
index 50a6da8..948187e 100644
--- a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b16110();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b16110();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.glsl
index e5f8857..c9133cf 100644
--- a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_b16110() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_b16110();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.msl
index 05d40f1..14b3201 100644
--- a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b16110(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_b16110(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_b16110(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b16110(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b16110(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b16110(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b16110(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.spvasm
index 92bac02..3f337b2 100644
--- a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.spvasm
@@ -1,79 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b16110 "textureStore_b16110"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_b16110 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %24 = OpCompositeExtract %uint %23 0
-         %25 = OpCompositeExtract %uint %23 1
-         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_b16110 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_b16110
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_b16110
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_b16110
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_b16110
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_b16110
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.wgsl
index 898d681..5d05b21 100644
--- a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b16110();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b16110();
diff --git a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl
index 5df00c2..03ef1b2 100644
--- a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_b286b4() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b286b4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b286b4();
diff --git a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.dxc.hlsl
index 00ee8d7..665ddc8 100644
--- a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b286b4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b286b4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.fxc.hlsl
index 00ee8d7..665ddc8 100644
--- a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b286b4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b286b4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.glsl
index e4ba398..e981e1b 100644
--- a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_b286b4() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_b286b4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.msl
index 768bd98..afaa1a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b286b4(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_b286b4(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_b286b4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b286b4(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b286b4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b286b4(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b286b4(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.spvasm
index 31510b5..0bc977f 100644
--- a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.spvasm
@@ -1,79 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b286b4 "textureStore_b286b4"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_b286b4 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %24 = OpCompositeExtract %int %23 0
-         %25 = OpCompositeExtract %int %23 1
-         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_b286b4 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_b286b4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_b286b4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_b286b4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_b286b4
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_b286b4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.wgsl
index 7ef29a6..576f2db 100644
--- a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b286b4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b286b4();
diff --git a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl
index b6c3df6..45c2265 100644
--- a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_b36bc1() {
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b36bc1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b36bc1();
diff --git a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.dxc.hlsl
index 7dea078..c0a44fa 100644
--- a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b36bc1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b36bc1();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.fxc.hlsl
index 7dea078..c0a44fa 100644
--- a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b36bc1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b36bc1();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.glsl
index 648f285..5f6a8fb 100644
--- a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_b36bc1() {
-  imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_b36bc1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.msl
index 5f10cf2..e74c17b 100644
--- a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b36bc1(texture3d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_b36bc1(texture3d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_b36bc1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b36bc1(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b36bc1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b36bc1(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b36bc1(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.spvasm
index 508ac9e..2066645 100644
--- a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b36bc1 "textureStore_b36bc1"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %13 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_b36bc1 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_b36bc1 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_b36bc1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_b36bc1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_b36bc1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_b36bc1
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_b36bc1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.wgsl
index ed42feb..67666f1 100644
--- a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b36bc1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b36bc1();
diff --git a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl
index 6d26ba1..2d8e155 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_b42fd3() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b42fd3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b42fd3();
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 351fbdd..8b4246b 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b42fd3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b42fd3();
   return;
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 351fbdd..8b4246b 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b42fd3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b42fd3();
   return;
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 81a8e0a..a8e0d29 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_b42fd3() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_b42fd3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 66bc913..ba100ea 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b42fd3(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u);
+void textureStore_b42fd3(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_b42fd3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b42fd3(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b42fd3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b42fd3(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b42fd3(tint_symbol_2);
   return;
 }
 
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 f08c969..f9de698 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.spvasm
@@ -1,78 +1,49 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b42fd3 "textureStore_b42fd3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_b42fd3 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpCompositeConstruct %v3uint %15 %16 %uint_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_b42fd3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_b42fd3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_b42fd3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_b42fd3
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = 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 fc1889f..282434c 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b42fd3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b42fd3();
diff --git a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl
index a80ea36..2115e99 100644
--- a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_b4389e() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b4389e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b4389e();
diff --git a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.dxc.hlsl
index 92c6f33..f37ac31 100644
--- a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b4389e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b4389e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.fxc.hlsl
index 92c6f33..f37ac31 100644
--- a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b4389e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b4389e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.glsl
index 5b845b5..fc04623 100644
--- a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_b4389e() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_b4389e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.msl
index bdc4143..579449f 100644
--- a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b4389e(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_b4389e(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_b4389e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b4389e(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b4389e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b4389e(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b4389e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.spvasm
index f4d3329..8d08cef 100644
--- a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b4389e "textureStore_b4389e"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_b4389e = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_b4389e = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_b4389e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_b4389e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_b4389e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_b4389e
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_b4389e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.wgsl
index 0b95a85..365727c 100644
--- a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b4389e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b4389e();
diff --git a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl
index 9ca97d6..23a57d2 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_b706b1() {
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b706b1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b706b1();
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 ffe0188..bd68346 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b706b1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b706b1();
   return;
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 ffe0188..bd68346 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b706b1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b706b1();
   return;
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 f6a3922..87de34d 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage3D arg_0;
-void textureStore_b706b1() {
-  imageStore(arg_0, ivec3(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_b706b1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 d4aaf4a..3bb3328 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b706b1(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(int3(1)));
+void textureStore_b706b1(texture3d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_b706b1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b706b1(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b706b1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b706b1(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b706b1(tint_symbol_2);
   return;
 }
 
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 9c0194d..3d5b981 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b706b1 "textureStore_b706b1"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %13 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_b706b1 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_b706b1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_b706b1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_b706b1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_b706b1
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 28f1c41..d0f5497 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b706b1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b706b1();
diff --git a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl
index d60a15a..7e4ae94 100644
--- a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_b70ded() {
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b70ded();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b70ded();
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 2af7b3c..b99ae93 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b70ded();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b70ded();
   return;
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 2af7b3c..b99ae93 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b70ded();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b70ded();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.glsl
index ba33491..0ac2361 100644
--- a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_b70ded() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_b70ded();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 4cf6aa4..35a77fc 100644
--- a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b70ded(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1u));
+void textureStore_b70ded(texture1d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_b70ded(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b70ded(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b70ded(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b70ded(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b70ded(tint_symbol_2);
   return;
 }
 
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 08e69b1..97d3700 100644
--- a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b70ded "textureStore_b70ded"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %21
+         %13 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_b70ded = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_b70ded
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_b70ded
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_b70ded
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_b70ded
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_b70ded
                OpReturn
                OpFunctionEnd
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 13327aa..986ecc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b70ded();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b70ded();
diff --git a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl
index a657d03..4f76385 100644
--- a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_b71c13() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b71c13();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b71c13();
diff --git a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.dxc.hlsl
index 671e4d1..566f920 100644
--- a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b71c13();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b71c13();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.fxc.hlsl
index 671e4d1..566f920 100644
--- a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b71c13();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b71c13();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.msl
index 2fc1473..21e8033 100644
--- a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b71c13(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_b71c13(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_b71c13(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b71c13(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b71c13(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b71c13(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b71c13(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.spvasm
index f0b2d33..c8deb8d 100644
--- a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b71c13 "textureStore_b71c13"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_b71c13 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_b71c13 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_b71c13
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_b71c13
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_b71c13
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_b71c13
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_b71c13
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.wgsl
index 1373960..99645e5 100644
--- a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b71c13();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b71c13();
diff --git a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl
index a89f984..17bc4e9 100644
--- a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_b7232c() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b7232c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b7232c();
diff --git a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.dxc.hlsl
index 4e5c557..f09ad12 100644
--- a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b7232c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b7232c();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.fxc.hlsl
index 4e5c557..f09ad12 100644
--- a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b7232c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b7232c();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.glsl
index 126bf8e..b4b3843 100644
--- a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2D arg_0;
-void textureStore_b7232c() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_b7232c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.msl
index 2732a6e..cce772f 100644
--- a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b7232c(texture1d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u)); tint_symbol_1.fence();
+void textureStore_b7232c(texture1d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_b7232c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b7232c(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b7232c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b7232c(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b7232c(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.spvasm
index d7379b9..ab184b6 100644
--- a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.spvasm
@@ -1,71 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b7232c "textureStore_b7232c"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_b7232c = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_b7232c = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_b7232c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_b7232c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_b7232c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_b7232c
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_b7232c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.wgsl
index 2b5b1f8..d963bc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b7232c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b7232c();
diff --git a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl
index e66ac64..709131e 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_b76ff3() {
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b76ff3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b76ff3();
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 51a5d6e..ca13b1d 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b76ff3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b76ff3();
   return;
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 51a5d6e..ca13b1d 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b76ff3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b76ff3();
   return;
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 7635ce8..13c5758 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_b76ff3() {
-  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_b76ff3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 a9577d6..19ac348 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b76ff3(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)));
+void textureStore_b76ff3(texture2d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_b76ff3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b76ff3(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b76ff3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b76ff3(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b76ff3(tint_symbol_2);
   return;
 }
 
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 8458d84..f9c14b1 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b76ff3 "textureStore_b76ff3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_b76ff3 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_b76ff3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_b76ff3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_b76ff3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_b76ff3
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 eec1af1..4c59030 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b76ff3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b76ff3();
diff --git a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl
index 21f8f1e..71a89ab 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_b77161() {
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b77161();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b77161();
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 a77ebf8..676ee9f 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b77161();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b77161();
   return;
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 a77ebf8..676ee9f 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b77161();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b77161();
   return;
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 794ce4a..2024020 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b77161(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1u));
+void textureStore_b77161(texture1d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_b77161(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b77161(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b77161(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b77161(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b77161(tint_symbol_2);
   return;
 }
 
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 3addc3d..b0ad4b9 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b77161 "textureStore_b77161"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %21
+         %13 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_b77161 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_b77161
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_b77161
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_b77161
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_b77161
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_b77161
                OpReturn
                OpFunctionEnd
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 202e528..9b66b61 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b77161();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b77161();
diff --git a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl
index c200f38..2570f18 100644
--- a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_b89ffb() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b89ffb();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b89ffb();
diff --git a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.dxc.hlsl
index c833419..5f90abf 100644
--- a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b89ffb();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b89ffb();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.fxc.hlsl
index c833419..5f90abf 100644
--- a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b89ffb();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b89ffb();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.glsl
index ffb20ef..95d7d1c 100644
--- a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_b89ffb() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_b89ffb();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.msl
index 4db2d5e..1d0d798 100644
--- a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b89ffb(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_b89ffb(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_b89ffb(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b89ffb(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b89ffb(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b89ffb(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b89ffb(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.spvasm
index 1104d4f..0e4ec38 100644
--- a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.spvasm
@@ -1,79 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b89ffb "textureStore_b89ffb"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_b89ffb = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_b89ffb = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_b89ffb
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_b89ffb
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_b89ffb
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_b89ffb
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_b89ffb
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.wgsl
index 14f1fd8..9f173a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b89ffb();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b89ffb();
diff --git a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl
index 02a83ca..9fbace8 100644
--- a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_b91b86() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b91b86();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b91b86();
diff --git a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.dxc.hlsl
index 0cf080a..4bb58e1 100644
--- a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b91b86();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b91b86();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.fxc.hlsl
index 0cf080a..4bb58e1 100644
--- a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b91b86();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b91b86();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.msl
index f08eb9b..460d5c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b91b86(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1);
+void textureStore_b91b86(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_b91b86(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b91b86(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b91b86(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b91b86(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b91b86(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.spvasm
index 5db9f6c..34cf785 100644
--- a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.spvasm
@@ -1,81 +1,55 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b91b86 "textureStore_b91b86"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_b91b86 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_b91b86 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_b91b86
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_b91b86
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_b91b86
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_b91b86
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_b91b86
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.wgsl
index 21d811a7..70a242f 100644
--- a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b91b86();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b91b86();
diff --git a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl
index a240386..5c3a9fd 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_b9c81a() {
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b9c81a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b9c81a();
diff --git a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.dxc.hlsl
index 3f9001b..7d27e1f 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b9c81a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b9c81a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.fxc.hlsl
index 3f9001b..7d27e1f 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b9c81a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b9c81a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.msl
index 70839bb..bbfa4dc 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b9c81a(texture3d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_b9c81a(texture3d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_b9c81a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b9c81a(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b9c81a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b9c81a(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b9c81a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.spvasm
index eb624c0..f692536 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b9c81a "textureStore_b9c81a"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_b9c81a = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_b9c81a = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_b9c81a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_b9c81a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_b9c81a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_b9c81a
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_b9c81a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.wgsl
index 9856560..93abe4e 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b9c81a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b9c81a();
diff --git a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl
index e14a66c..e355336 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_b9d863() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b9d863();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b9d863();
diff --git a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.dxc.hlsl
index e3d8ec0..79e483a 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b9d863();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b9d863();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.fxc.hlsl
index e3d8ec0..79e483a 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b9d863();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b9d863();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.glsl
index 075c2be..faf457f 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_b9d863() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_b9d863();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.msl
index 7788242..cf19ec6 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b9d863(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_b9d863(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_b9d863(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b9d863(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b9d863(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b9d863(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b9d863(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.spvasm
index 9295fd4..b74dfde 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.spvasm
@@ -1,79 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b9d863 "textureStore_b9d863"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_b9d863 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %24 = OpCompositeExtract %int %23 0
-         %25 = OpCompositeExtract %int %23 1
-         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_b9d863 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_b9d863
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_b9d863
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_b9d863
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_b9d863
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_b9d863
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.wgsl
index faf5378..66e0564 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b9d863();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b9d863();
diff --git a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl
index c502d70..25cf83c 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_bbcb7f() {
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bbcb7f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bbcb7f();
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 cc20f3a..b20db39 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bbcb7f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bbcb7f();
   return;
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 cc20f3a..b20db39 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bbcb7f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bbcb7f();
   return;
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 b96db1d..438e395 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_bbcb7f() {
-  imageStore(arg_0, ivec2(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_bbcb7f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 835ba76..691633b 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_bbcb7f(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)));
+void textureStore_bbcb7f(texture2d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_bbcb7f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_bbcb7f(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_bbcb7f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_bbcb7f(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_bbcb7f(tint_symbol_2);
   return;
 }
 
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 23fa748..9cba11e 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_bbcb7f "textureStore_bbcb7f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %13 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_bbcb7f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_bbcb7f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_bbcb7f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_bbcb7f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_bbcb7f
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 d168e22..6e919e0 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bbcb7f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bbcb7f();
diff --git a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl
index 1e3f171..a86e98e 100644
--- a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_bc1423() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bc1423();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bc1423();
diff --git a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.dxc.hlsl
index 6f6a8db..168e984 100644
--- a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bc1423();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bc1423();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.fxc.hlsl
index 6f6a8db..168e984 100644
--- a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bc1423();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bc1423();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.glsl
index 6313f80..05d7b25 100644
--- a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_bc1423() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_bc1423();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.msl
index ca86fa9..4d6d373 100644
--- a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_bc1423(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_bc1423(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_bc1423(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_bc1423(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_bc1423(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_bc1423(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_bc1423(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.spvasm
index 9e5ad10..32a45f6 100644
--- a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_bc1423 "textureStore_bc1423"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_bc1423 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_bc1423 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_bc1423
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_bc1423
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_bc1423
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_bc1423
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_bc1423
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.wgsl
index e2bf3b9..c68ae40 100644
--- a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bc1423();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bc1423();
diff --git a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl
index 2807049..c279456 100644
--- a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_bcc97a() {
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bcc97a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bcc97a();
diff --git a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.dxc.hlsl
index 54733fc..b5e871f 100644
--- a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bcc97a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bcc97a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.fxc.hlsl
index 54733fc..b5e871f 100644
--- a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bcc97a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bcc97a();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.glsl
index c55adf5..f58ef14 100644
--- a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2D arg_0;
-void textureStore_bcc97a() {
-  imageStore(arg_0, ivec2(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_bcc97a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.msl
index 185a01f..8348fd5 100644
--- a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_bcc97a(texture2d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_bcc97a(texture2d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_bcc97a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_bcc97a(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_bcc97a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_bcc97a(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_bcc97a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.spvasm
index c2dbae6..cdf78c3 100644
--- a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_bcc97a "textureStore_bcc97a"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %13 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_bcc97a = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_bcc97a = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_bcc97a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_bcc97a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_bcc97a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_bcc97a
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_bcc97a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.wgsl
index 8a5ea0d..1202f88 100644
--- a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bcc97a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bcc97a();
diff --git a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl
index 3012b0a..b78c0b5 100644
--- a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_bd6602() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bd6602();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bd6602();
diff --git a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.dxc.hlsl
index bb092ba..b5a2682 100644
--- a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bd6602();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bd6602();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.fxc.hlsl
index bb092ba..b5a2682 100644
--- a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bd6602();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bd6602();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.msl
index bace3bd..e997d63 100644
--- a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_bd6602(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_bd6602(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_bd6602(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_bd6602(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_bd6602(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_bd6602(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_bd6602(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.spvasm
index 8d5a257..6b3dd34 100644
--- a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_bd6602 "textureStore_bd6602"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_bd6602 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_bd6602 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_bd6602
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_bd6602
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_bd6602
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_bd6602
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_bd6602
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.wgsl
index ca40403..4aafb6a 100644
--- a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bd6602();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bd6602();
diff --git a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl
index 539a155..e61247f 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_be6e30() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_be6e30();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_be6e30();
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 207f93a..a148ded 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_be6e30();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_be6e30();
   return;
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 207f93a..a148ded 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
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_be6e30();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_be6e30();
   return;
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 94317db..2ace80d 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_be6e30() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_be6e30();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 f2cc5a4..99c864a 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_be6e30(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)));
+void textureStore_be6e30(texture2d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_be6e30(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_be6e30(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_be6e30(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_be6e30(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_be6e30(tint_symbol_2);
   return;
 }
 
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 9f4ba46..7184a39 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_be6e30 "textureStore_be6e30"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_be6e30 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_be6e30
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_be6e30
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_be6e30
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_be6e30
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 8a92711..c8d835c 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_be6e30();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_be6e30();
diff --git a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl
index c214154..c45936e 100644
--- a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_bedbfc() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bedbfc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bedbfc();
diff --git a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.dxc.hlsl
index e75f9cb..7e236e0 100644
--- a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bedbfc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bedbfc();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.fxc.hlsl
index e75f9cb..7e236e0 100644
--- a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bedbfc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bedbfc();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.glsl
index 13f0c67..9646427 100644
--- a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_bedbfc() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_bedbfc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.msl
index 0517df3..aa132dd 100644
--- a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_bedbfc(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1)));
+void textureStore_bedbfc(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_bedbfc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_bedbfc(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_bedbfc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_bedbfc(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_bedbfc(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.spvasm
index 6b28347..4d5d6b5 100644
--- a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_bedbfc "textureStore_bedbfc"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_bedbfc = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_bedbfc = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_bedbfc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_bedbfc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_bedbfc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_bedbfc
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_bedbfc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.wgsl
index 5c4f2b5..0ea2d31 100644
--- a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bedbfc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bedbfc();
diff --git a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl
index 608e491..9394c8a 100644
--- a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_bf775c() {
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bf775c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bf775c();
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 1cabb87..52d7f36 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bf775c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bf775c();
   return;
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 1cabb87..52d7f36 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bf775c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bf775c();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.glsl
index 9eb0d1a..d1913a0 100644
--- a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_bf775c() {
-  imageStore(arg_0, ivec2(1, 0), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_bf775c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 4d6d5d9..d43427d 100644
--- a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_bf775c(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1));
+void textureStore_bf775c(texture1d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_bf775c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_bf775c(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_bf775c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_bf775c(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_bf775c(tint_symbol_2);
   return;
 }
 
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 7465b1f..34a61ad 100644
--- a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_bf775c "textureStore_bf775c"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %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
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %21
+         %13 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_bf775c = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_bf775c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_bf775c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_bf775c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_bf775c
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_bf775c
                OpReturn
                OpFunctionEnd
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 028926c..efeeb3e 100644
--- a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bf775c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bf775c();
diff --git a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl
index 9bf9fc6..c267a3e 100644
--- a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_c06463() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c06463();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c06463();
diff --git a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.dxc.hlsl
index 4c9497b..a0c52e0 100644
--- a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c06463();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c06463();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.fxc.hlsl
index 4c9497b..a0c52e0 100644
--- a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c06463();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c06463();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.glsl
index 245ad35..1f4d8c7 100644
--- a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_c06463() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_c06463();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.msl
index 805be83..2d5daf4 100644
--- a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c06463(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_c06463(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_c06463(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c06463(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c06463(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c06463(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c06463(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.spvasm
index 4edf662..b073d92 100644
--- a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.spvasm
@@ -1,76 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c06463 "textureStore_c06463"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_c06463 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_c06463 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_c06463
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_c06463
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_c06463
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_c06463
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_c06463
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.wgsl
index 9d3ba24..cfeed1e 100644
--- a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c06463();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c06463();
diff --git a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl
index e9ac9d7..83b3467 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_c1c664() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c1c664();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c1c664();
diff --git a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.dxc.hlsl
index ec8b0c7..239c163 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c1c664();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c1c664();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.fxc.hlsl
index ec8b0c7..239c163 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c1c664();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c1c664();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.glsl
index 806fff3..64ff312 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_c1c664() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_c1c664();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.msl
index e0a55b0..e679a31 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c1c664(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_c1c664(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_c1c664(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c1c664(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c1c664(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c1c664(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c1c664(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.spvasm
index 0b291f0..c9c1577 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c1c664 "textureStore_c1c664"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_c1c664 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_c1c664 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_c1c664
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_c1c664
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_c1c664
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_c1c664
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_c1c664
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.wgsl
index 15f4d41..b0afec2 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c1c664();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c1c664();
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl
index ba62ae5..eca342f 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_c1f29e() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c1f29e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c1f29e();
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 6144100..5ad76df 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c1f29e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c1f29e();
   return;
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 6144100..5ad76df 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c1f29e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c1f29e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.glsl
index d31c8e5..3d150f7 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2D arg_0;
-void textureStore_c1f29e() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_c1f29e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 d753b62..f0ac606 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c1f29e(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u));
+void textureStore_c1f29e(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_c1f29e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c1f29e(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c1f29e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c1f29e(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c1f29e(tint_symbol_2);
   return;
 }
 
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 3c052e7..4a39556 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c1f29e "textureStore_c1f29e"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %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 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_c1f29e = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_c1f29e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_c1f29e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_c1f29e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_c1f29e
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 8a8f8bc..da04f00 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c1f29e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c1f29e();
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl
index b2e2245..384b150 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_c1f760() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c1f760();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c1f760();
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.dxc.hlsl
index 42de642..e93066f 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c1f760();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c1f760();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.fxc.hlsl
index 42de642..e93066f 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c1f760();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c1f760();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.glsl
index a44bedd..e869fdc 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_c1f760() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_c1f760();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.msl
index cde7524..4b053fb 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c1f760(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_c1f760(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_c1f760(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c1f760(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c1f760(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c1f760(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c1f760(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.spvasm
index 1f5fb51..64d8832 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.spvasm
@@ -1,77 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c1f760 "textureStore_c1f760"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %28 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_c1f760 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_c1f760 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpCompositeConstruct %v3uint %15 %16 %uint_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_c1f760
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_c1f760
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_c1f760
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_c1f760
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_c1f760
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.wgsl
index 66c6c77..f8b4599 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c1f760();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c1f760();
diff --git a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl
index cf24b40..d4c8387 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_c2ca46() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c2ca46();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c2ca46();
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 fdef2e5..e73b577 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c2ca46();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c2ca46();
   return;
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 fdef2e5..e73b577 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c2ca46();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c2ca46();
   return;
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 dbf4a7e..3dc857e 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_c2ca46() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_c2ca46();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 437604c..6e26805 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c2ca46(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u);
+void textureStore_c2ca46(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_c2ca46(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c2ca46(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c2ca46(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c2ca46(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c2ca46(tint_symbol_2);
   return;
 }
 
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 21a9c28..90831cd 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c2ca46 "textureStore_c2ca46"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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
-         %24 = OpCompositeExtract %uint %23 0
-         %25 = OpCompositeExtract %uint %23 1
-         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_c2ca46 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_c2ca46
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_c2ca46
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_c2ca46
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_c2ca46
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 a6a5957..40d440e 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c2ca46();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c2ca46();
diff --git a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl
index 3265815..f241815 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_c32905() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c32905();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c32905();
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 ffd12a0..2d525e1 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c32905();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c32905();
   return;
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 ffd12a0..2d525e1 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c32905();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c32905();
   return;
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 9f07171..4332418 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_c32905() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_c32905();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e156740..d743394 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c32905(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1);
+void textureStore_c32905(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_c32905(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c32905(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c32905(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c32905(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c32905(tint_symbol_2);
   return;
 }
 
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 9f673bc..60045fe 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c32905 "textureStore_c32905"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_c32905 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_c32905
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_c32905
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_c32905
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_c32905
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 fac0821..9d6f9fc 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c32905();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c32905();
diff --git a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl
index 1b0d57c..37df688 100644
--- a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_c33478() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c33478();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c33478();
diff --git a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.dxc.hlsl
index 691798c..3c05e1e 100644
--- a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c33478();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c33478();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.fxc.hlsl
index 691798c..3c05e1e 100644
--- a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c33478();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c33478();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.msl
index caefbcd..698402d9 100644
--- a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c33478(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_c33478(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_c33478(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c33478(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c33478(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c33478(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c33478(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.spvasm
index e0ff651..ed0b41c 100644
--- a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c33478 "textureStore_c33478"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_c33478 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_c33478 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_c33478
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_c33478
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_c33478
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_c33478
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_c33478
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.wgsl
index 0dad886..28e1c1d 100644
--- a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c33478();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c33478();
diff --git a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl
index 14f0f59..07874cf 100644
--- a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_c35268() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c35268();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c35268();
diff --git a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.dxc.hlsl
index 162ef7a..7c78a0a 100644
--- a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c35268();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c35268();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.fxc.hlsl
index 162ef7a..7c78a0a 100644
--- a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c35268();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c35268();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.glsl
index 6a247b5..b033438 100644
--- a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2DArray arg_0;
-void textureStore_c35268() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_c35268();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.msl
index cba62ec..4432025 100644
--- a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c35268(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_c35268(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_c35268(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c35268(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c35268(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c35268(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c35268(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.spvasm
index d6d147e..08b865b3 100644
--- a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c35268 "textureStore_c35268"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_c35268 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_c35268 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_c35268
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_c35268
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_c35268
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_c35268
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_c35268
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.wgsl
index 564ac20..d32b746 100644
--- a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c35268();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c35268();
diff --git a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl
index 83feb19..96a339d 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_c5af1e() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c5af1e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c5af1e();
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 2a18193..12bd5b0 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c5af1e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c5af1e();
   return;
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 2a18193..12bd5b0 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c5af1e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c5af1e();
   return;
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 a2d545d..a5e6bb0 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image3D arg_0;
-void textureStore_c5af1e() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_c5af1e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 783a491..c46c966 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c5af1e(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1)));
+void textureStore_c5af1e(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_c5af1e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c5af1e(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c5af1e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c5af1e(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c5af1e(tint_symbol_2);
   return;
 }
 
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 7e95195..1975162 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c5af1e "textureStore_c5af1e"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_c5af1e = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_c5af1e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_c5af1e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_c5af1e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_c5af1e
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 311449a..09a6072 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c5af1e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c5af1e();
diff --git a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl
index 0ff7b21..575b9e2 100644
--- a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_c63f05() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c63f05();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c63f05();
diff --git a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.dxc.hlsl
index b400699..b1b0b7d 100644
--- a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c63f05();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c63f05();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.fxc.hlsl
index b400699..b1b0b7d 100644
--- a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c63f05();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c63f05();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.glsl
index 4ddb6aa..9860cd6 100644
--- a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_c63f05() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_c63f05();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.msl
index 192150a..e3b3365 100644
--- a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c63f05(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_c63f05(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_c63f05(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c63f05(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c63f05(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c63f05(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c63f05(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.spvasm
index 57a4ef4..3023162 100644
--- a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c63f05 "textureStore_c63f05"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_c63f05 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_c63f05 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_c63f05
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_c63f05
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_c63f05
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_c63f05
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_c63f05
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.wgsl
index cdf1f23..641b502 100644
--- a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c63f05();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c63f05();
diff --git a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl
index 419da30..9f662e7 100644
--- a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_c79451() {
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c79451();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c79451();
diff --git a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.dxc.hlsl
index fe983a4..7a2a2a0 100644
--- a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c79451();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c79451();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.fxc.hlsl
index fe983a4..7a2a2a0 100644
--- a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c79451();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c79451();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.glsl
index 37e78a4..255156e 100644
--- a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_c79451() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_c79451();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.msl
index dd48ecc..c8a3aec 100644
--- a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c79451(texture1d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1u)); tint_symbol_1.fence();
+void textureStore_c79451(texture1d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1u)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_c79451(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c79451(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c79451(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c79451(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c79451(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.spvasm
index f2f1b32..a777005 100644
--- a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c79451 "textureStore_c79451"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
       %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_c79451 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_c79451 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_c79451
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_c79451
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_c79451
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_c79451
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_c79451
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.wgsl
index 63ff430..8b4f4e9 100644
--- a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c79451();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c79451();
diff --git a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl
index ac27854..3075eaf 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_c863be() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c863be();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c863be();
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 1e8c33e..e2613c8 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c863be();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c863be();
   return;
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 1e8c33e..e2613c8 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c863be();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c863be();
   return;
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 12951ee..6bda265 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c863be(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1);
+void textureStore_c863be(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_c863be(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c863be(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c863be(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c863be(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c863be(tint_symbol_2);
   return;
 }
 
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 dd01bb3..4058c27 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.spvasm
@@ -1,78 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c863be "textureStore_c863be"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_c863be = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_c863be
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_c863be
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_c863be
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_c863be
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 e81dd25..27cbc92 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c863be();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c863be();
diff --git a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl
index 5dafc14..69c29a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_c9d780() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c9d780();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c9d780();
diff --git a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.dxc.hlsl
index 36d9c32..e8767b9 100644
--- a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c9d780();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c9d780();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.fxc.hlsl
index 36d9c32..e8767b9 100644
--- a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c9d780();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c9d780();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.glsl
index 89380ad..5ddd3e6 100644
--- a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_c9d780() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_c9d780();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.msl
index 41a67ee..2b341fe 100644
--- a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c9d780(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u));
+void textureStore_c9d780(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_c9d780(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c9d780(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c9d780(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c9d780(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c9d780(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.spvasm
index 50fe7ea..82be5cf 100644
--- a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c9d780 "textureStore_c9d780"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_c9d780 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_c9d780 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_c9d780
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_c9d780
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_c9d780
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_c9d780
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_c9d780
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.wgsl
index f7bd4df..df07528 100644
--- a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c9d780();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c9d780();
diff --git a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl
index 0f2baa2..15dd2b8 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_cb3b0b() {
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_cb3b0b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_cb3b0b();
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 d9daac7..2d0dfcf 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_cb3b0b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_cb3b0b();
   return;
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 d9daac7..2d0dfcf 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_cb3b0b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_cb3b0b();
   return;
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 ee00d0f..cfc64a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage3D arg_0;
-void textureStore_cb3b0b() {
-  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_cb3b0b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 7883aab..6410cd8 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_cb3b0b(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(uint3(1u)));
+void textureStore_cb3b0b(texture3d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_cb3b0b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_cb3b0b(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_cb3b0b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_cb3b0b(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_cb3b0b(tint_symbol_2);
   return;
 }
 
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 167bfdc..2affae6 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_cb3b0b "textureStore_cb3b0b"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_cb3b0b = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_cb3b0b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_cb3b0b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_cb3b0b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_cb3b0b
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 11741a4..6a132bf 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_cb3b0b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_cb3b0b();
diff --git a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl
index 0e8a1e19..4833a9d 100644
--- a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_ccac20() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ccac20();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ccac20();
diff --git a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.dxc.hlsl
index 5722b41..01c6c81 100644
--- a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ccac20();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ccac20();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.fxc.hlsl
index 5722b41..01c6c81 100644
--- a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ccac20();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ccac20();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.glsl
index a943f2d..8810dc4 100644
--- a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_ccac20() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_ccac20();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.msl
index 7f6f1e3..6e22922 100644
--- a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ccac20(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_ccac20(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_ccac20(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ccac20(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ccac20(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ccac20(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ccac20(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.spvasm
index dcd76d6..8213292 100644
--- a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ccac20 "textureStore_ccac20"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_ccac20 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_ccac20 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_ccac20
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_ccac20
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_ccac20
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_ccac20
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_ccac20
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.wgsl
index 1fa5dcd..9bbddae 100644
--- a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ccac20();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ccac20();
diff --git a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl
index 131280f..a5f065f 100644
--- a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_cd6755() {
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_cd6755();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_cd6755();
diff --git a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.dxc.hlsl
index de2e565..e2a82e1 100644
--- a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_cd6755();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_cd6755();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.fxc.hlsl
index de2e565..e2a82e1 100644
--- a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_cd6755();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_cd6755();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.glsl
index 46957e5..04068b0 100644
--- a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_cd6755() {
-  imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_cd6755();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.msl
index 250426b..bc5ac8f 100644
--- a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_cd6755(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(uint3(1u)));
+void textureStore_cd6755(texture3d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_cd6755(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_cd6755(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_cd6755(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_cd6755(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_cd6755(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.spvasm
index a56d0fb..d1559e1 100644
--- a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_cd6755 "textureStore_cd6755"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %13 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_cd6755 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_cd6755 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_cd6755
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_cd6755
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_cd6755
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_cd6755
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_cd6755
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.wgsl
index f821741..4882590 100644
--- a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_cd6755();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_cd6755();
diff --git a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl
index 76d1cfc..c3ec02c 100644
--- a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_ceb832() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ceb832();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ceb832();
diff --git a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.dxc.hlsl
index 340b2b5..5d40e01 100644
--- a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ceb832();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ceb832();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.fxc.hlsl
index 340b2b5..5d40e01 100644
--- a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ceb832();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ceb832();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.glsl
index dfec3e1..289619f 100644
--- a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2DArray arg_0;
-void textureStore_ceb832() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_ceb832();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.msl
index 43a29fc..6489a90 100644
--- a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ceb832(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u); tint_symbol_1.fence();
+void textureStore_ceb832(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_ceb832(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ceb832(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ceb832(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ceb832(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ceb832(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.spvasm
index f3c3392..e652e43 100644
--- a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.spvasm
@@ -1,79 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ceb832 "textureStore_ceb832"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_ceb832 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %24 = OpCompositeExtract %uint %23 0
-         %25 = OpCompositeExtract %uint %23 1
-         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_ceb832 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_ceb832
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_ceb832
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_ceb832
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_ceb832
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_ceb832
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.wgsl
index 85450b2..1998d46 100644
--- a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ceb832();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ceb832();
diff --git a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl
index 81d9638..73a8a41 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_d0d62c() {
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d0d62c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d0d62c();
diff --git a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.dxc.hlsl
index 968275a..269bda8 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d0d62c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d0d62c();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.fxc.hlsl
index 968275a..269bda8 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d0d62c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d0d62c();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.glsl
index 26b492a..1459b97 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_d0d62c() {
-  imageStore(arg_0, ivec2(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_d0d62c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.msl
index 685368e..595ba68 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d0d62c(texture2d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_d0d62c(texture2d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_d0d62c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d0d62c(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d0d62c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d0d62c(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d0d62c(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.spvasm
index aa92bdf..27d16d0 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d0d62c "textureStore_d0d62c"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_d0d62c = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_d0d62c = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_d0d62c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_d0d62c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_d0d62c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_d0d62c
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_d0d62c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.wgsl
index e68490f..8761280 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d0d62c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d0d62c();
diff --git a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl
index ad8b230..05f3ee1 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_d0fadc() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d0fadc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d0fadc();
diff --git a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.dxc.hlsl
index 12ae1c3..3b9c36a 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d0fadc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d0fadc();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.fxc.hlsl
index 12ae1c3..3b9c36a 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d0fadc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d0fadc();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.glsl
index 0f3395c..d722d7f 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_d0fadc() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_d0fadc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.msl
index beb45cb..0fd09ec 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d0fadc(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_d0fadc(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_d0fadc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d0fadc(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d0fadc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d0fadc(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d0fadc(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.spvasm
index edb80d4..c68120a 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.spvasm
@@ -1,79 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d0fadc "textureStore_d0fadc"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_d0fadc = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_d0fadc = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_d0fadc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_d0fadc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_d0fadc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_d0fadc
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_d0fadc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.wgsl
index 28e7aa5..f90bd70 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d0fadc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d0fadc();
diff --git a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl
index 64242b6..ef18530 100644
--- a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_d19db4() {
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d19db4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d19db4();
diff --git a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.dxc.hlsl
index 48c8149..2fa4e82 100644
--- a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d19db4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d19db4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.fxc.hlsl
index 48c8149..2fa4e82 100644
--- a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d19db4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d19db4();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.msl
index 6009e7f..741d547 100644
--- a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d19db4(texture3d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_d19db4(texture3d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_d19db4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d19db4(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d19db4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d19db4(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d19db4(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.spvasm
index a72ed32..8724b88 100644
--- a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d19db4 "textureStore_d19db4"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %13 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_d19db4 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_d19db4 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_d19db4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_d19db4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_d19db4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_d19db4
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_d19db4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.wgsl
index 4870227..72785b4 100644
--- a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d19db4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d19db4();
diff --git a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl
index 785ac18..9fd31f1 100644
--- a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_d1ab82() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d1ab82();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d1ab82();
diff --git a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.dxc.hlsl
index 0396d6c..85cc306 100644
--- a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d1ab82();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d1ab82();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.fxc.hlsl
index 0396d6c..85cc306 100644
--- a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d1ab82();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d1ab82();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.glsl
index dc5dae1..c5dd4a5 100644
--- a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_d1ab82() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_d1ab82();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.msl
index 8730349..e8decd2 100644
--- a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d1ab82(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_d1ab82(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_d1ab82(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d1ab82(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d1ab82(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d1ab82(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d1ab82(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.spvasm
index 27d5c34..9b90319 100644
--- a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d1ab82 "textureStore_d1ab82"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_d1ab82 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_d1ab82 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_d1ab82
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_d1ab82
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_d1ab82
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_d1ab82
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_d1ab82
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.wgsl
index 6b7d7e3..f355934 100644
--- a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d1ab82();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d1ab82();
diff --git a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl
index 0a888ca..ef40398 100644
--- a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_d26166() {
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d26166();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d26166();
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 2801c86..2e2197c 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d26166();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d26166();
   return;
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 2801c86..2e2197c 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d26166();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d26166();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.glsl
index 8333e7c..04ab5d3 100644
--- a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_d26166() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_d26166();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 6888a47..7f9c5b4 100644
--- a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d26166(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1u));
+void textureStore_d26166(texture1d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_d26166(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d26166(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d26166(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d26166(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d26166(tint_symbol_2);
   return;
 }
 
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 c34f375..10e05f6 100644
--- a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d26166 "textureStore_d26166"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %21
+         %13 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_d26166 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_d26166
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_d26166
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_d26166
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_d26166
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_d26166
                OpReturn
                OpFunctionEnd
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 db59747..25f07f4 100644
--- a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d26166();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d26166();
diff --git a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl
index 2e5899f..9bac976 100644
--- a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_d2b565() {
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d2b565();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d2b565();
diff --git a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.dxc.hlsl
index 3fc9ae2..7713fae 100644
--- a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d2b565();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d2b565();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.fxc.hlsl
index 3fc9ae2..7713fae 100644
--- a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d2b565();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d2b565();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.glsl
index a998af6..ed3a4ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_d2b565() {
-  imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_d2b565();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.msl
index ab3f383..1159f12 100644
--- a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d2b565(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(uint3(1u)));
+void textureStore_d2b565(texture3d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_d2b565(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d2b565(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d2b565(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d2b565(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d2b565(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.spvasm
index db6ee7e..7c051a3 100644
--- a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d2b565 "textureStore_d2b565"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %13 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_d2b565 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_d2b565 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_d2b565
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_d2b565
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_d2b565
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_d2b565
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_d2b565
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.wgsl
index 9b56e89..dcb9c3c 100644
--- a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d2b565();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d2b565();
diff --git a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl
index a06d8aa..bb75a4d 100644
--- a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_d3a22b() {
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d3a22b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d3a22b();
diff --git a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.dxc.hlsl
index c78aa1b..e244ba2 100644
--- a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d3a22b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d3a22b();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.fxc.hlsl
index c78aa1b..e244ba2 100644
--- a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d3a22b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d3a22b();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.glsl
index cfb609a..0b2aaac 100644
--- a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_d3a22b() {
-  imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_d3a22b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.msl
index 42ff96e..51420d2 100644
--- a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d3a22b(texture3d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_d3a22b(texture3d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_d3a22b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d3a22b(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d3a22b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d3a22b(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d3a22b(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.spvasm
index ea1294d..700220e 100644
--- a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d3a22b "textureStore_d3a22b"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %13 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_d3a22b = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_d3a22b = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_d3a22b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_d3a22b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_d3a22b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_d3a22b
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_d3a22b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.wgsl
index 135e3d4..823e3fc 100644
--- a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d3a22b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d3a22b();
diff --git a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl
index e480cff..c0d567c 100644
--- a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_d4aa95() {
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d4aa95();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d4aa95();
diff --git a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.dxc.hlsl
index f182689..09cd89a 100644
--- a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d4aa95();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d4aa95();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.fxc.hlsl
index f182689..09cd89a 100644
--- a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d4aa95();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d4aa95();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.glsl
index 7c9cb1a..e84753b 100644
--- a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_d4aa95() {
-  imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_d4aa95();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.msl
index b159620..0c22d26 100644
--- a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d4aa95(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(uint3(1u)));
+void textureStore_d4aa95(texture3d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_d4aa95(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d4aa95(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d4aa95(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d4aa95(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d4aa95(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.spvasm
index a19e893..a21be81 100644
--- a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d4aa95 "textureStore_d4aa95"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %13 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_d4aa95 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_d4aa95 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_d4aa95
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_d4aa95
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_d4aa95
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_d4aa95
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_d4aa95
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.wgsl
index f6f3d79..c1f3b90 100644
--- a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d4aa95();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d4aa95();
diff --git a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl
index 85dd8c0..359c939 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_d55e65() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d55e65();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d55e65();
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 33b75e0..af63082 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d55e65();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d55e65();
   return;
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 33b75e0..af63082 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d55e65();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d55e65();
   return;
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 a7faa6b..76d446f 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_d55e65() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_d55e65();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 6b43ae2..3fe67ae 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d55e65(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1);
+void textureStore_d55e65(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_d55e65(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d55e65(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d55e65(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d55e65(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d55e65(tint_symbol_2);
   return;
 }
 
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 5a162fb..71b3729 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d55e65 "textureStore_d55e65"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %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
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_d55e65 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_d55e65
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_d55e65
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_d55e65
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_d55e65
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = 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 4785793..c5f0883 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d55e65();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d55e65();
diff --git a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl
index 2f0dacd..bac9122 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_d73b5c() {
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d73b5c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d73b5c();
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 b9d223c..1b276dc 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d73b5c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d73b5c();
   return;
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 b9d223c..1b276dc 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d73b5c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d73b5c();
   return;
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 5f80189..05e9153 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d73b5c(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1));
+void textureStore_d73b5c(texture1d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_d73b5c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d73b5c(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d73b5c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d73b5c(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d73b5c(tint_symbol_2);
   return;
 }
 
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 344da4c..3933247 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d73b5c "textureStore_d73b5c"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %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
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %21
+         %13 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_d73b5c = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_d73b5c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_d73b5c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_d73b5c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_d73b5c
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_d73b5c
                OpReturn
                OpFunctionEnd
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 929882d..f085c05 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d73b5c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d73b5c();
diff --git a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl
index 09a2c8b..2729e5e 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_d82b0a() {
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d82b0a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d82b0a();
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 981c51b..0fd864e 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d82b0a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d82b0a();
   return;
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 981c51b..0fd864e 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d82b0a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d82b0a();
   return;
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 37ecb79..c0d7ee7 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d82b0a(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(uint3(1u)));
+void textureStore_d82b0a(texture3d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_d82b0a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d82b0a(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d82b0a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d82b0a(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d82b0a(tint_symbol_2);
   return;
 }
 
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 ead28bf..a481f93 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.spvasm
@@ -1,77 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d82b0a "textureStore_d82b0a"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_d82b0a = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_d82b0a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_d82b0a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_d82b0a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_d82b0a
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 0c4c779..4a403e4 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d82b0a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d82b0a();
diff --git a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl
index 0fffdd1..cc0c328 100644
--- a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_d86d33() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d86d33();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d86d33();
diff --git a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.dxc.hlsl
index 7ba4908..4b42bfe 100644
--- a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d86d33();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d86d33();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.fxc.hlsl
index 7ba4908..4b42bfe 100644
--- a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d86d33();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d86d33();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.glsl
index dc74b0d..94b589a 100644
--- a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_d86d33() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_d86d33();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.msl
index 5a1e92e..e8505e6 100644
--- a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d86d33(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_d86d33(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_d86d33(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d86d33(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d86d33(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d86d33(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d86d33(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.spvasm
index 87ea0be..a89e921 100644
--- a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.spvasm
@@ -1,79 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d86d33 "textureStore_d86d33"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_d86d33 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_d86d33 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_d86d33
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_d86d33
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_d86d33
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_d86d33
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_d86d33
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.wgsl
index 3a58829..8575c48 100644
--- a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d86d33();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d86d33();
diff --git a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl
index 001bd38..82885d7 100644
--- a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_da530c() {
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_da530c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_da530c();
diff --git a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.dxc.hlsl
index 1464eaa..5a781c2 100644
--- a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_da530c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_da530c();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.fxc.hlsl
index 1464eaa..5a781c2 100644
--- a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_da530c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_da530c();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.glsl
index 3d70449..9e5e937 100644
--- a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_da530c() {
-  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_da530c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.msl
index 0791007..02f9f2c 100644
--- a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_da530c(texture2d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_da530c(texture2d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_da530c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_da530c(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_da530c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_da530c(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_da530c(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.spvasm
index 5b9f7ce..61f97d7 100644
--- a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_da530c "textureStore_da530c"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_da530c = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_da530c = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_da530c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_da530c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_da530c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_da530c
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_da530c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.wgsl
index f82634c..9ca01b9 100644
--- a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_da530c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_da530c();
diff --git a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl
index 0beb1b5..b1130db 100644
--- a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_db5128() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_db5128();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_db5128();
diff --git a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.dxc.hlsl
index ed18a6f..115bb40 100644
--- a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_db5128();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_db5128();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.fxc.hlsl
index ed18a6f..115bb40 100644
--- a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_db5128();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_db5128();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.glsl
index e01973c..46c2122 100644
--- a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_db5128() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_db5128();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.msl
index af6c388..67cb73c 100644
--- a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_db5128(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_db5128(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_db5128(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_db5128(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_db5128(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_db5128(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_db5128(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.spvasm
index 0b9de5d..3c829d4 100644
--- a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_db5128 "textureStore_db5128"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_db5128 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_db5128 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_db5128
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_db5128
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_db5128
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_db5128
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_db5128
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.wgsl
index bcb8655..c104d8a 100644
--- a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_db5128();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_db5128();
diff --git a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl
index 26d6904..c7d0787 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_db92a2() {
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_db92a2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_db92a2();
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 db95317..1279cfd 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_db92a2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_db92a2();
   return;
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 db95317..1279cfd 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_db92a2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_db92a2();
   return;
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 f55acef..2207dc0 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_db92a2() {
-  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_db92a2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 a099a41..ef717c8 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_db92a2(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)));
+void textureStore_db92a2(texture2d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_db92a2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_db92a2(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_db92a2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_db92a2(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_db92a2(tint_symbol_2);
   return;
 }
 
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 d95aecd..0920e39 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_db92a2 "textureStore_db92a2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %13 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_db92a2 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_db92a2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_db92a2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_db92a2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_db92a2
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 c9152d1..4d08fae 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_db92a2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_db92a2();
diff --git a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl
index 69c0494..cb4ec52 100644
--- a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_dce0e2() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dce0e2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dce0e2();
diff --git a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.dxc.hlsl
index 80dc03b..3445acf 100644
--- a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dce0e2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dce0e2();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.fxc.hlsl
index 80dc03b..3445acf 100644
--- a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dce0e2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dce0e2();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.glsl
index 3cc97ed..610f838 100644
--- a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2DArray arg_0;
-void textureStore_dce0e2() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_dce0e2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.msl
index 638148a..1a2ac33 100644
--- a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_dce0e2(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_dce0e2(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_dce0e2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_dce0e2(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_dce0e2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_dce0e2(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_dce0e2(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.spvasm
index 8f2f1b0..9a1755a 100644
--- a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.spvasm
@@ -1,79 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_dce0e2 "textureStore_dce0e2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_dce0e2 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_dce0e2 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_dce0e2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_dce0e2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_dce0e2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_dce0e2
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_dce0e2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.wgsl
index 556c99e..b0ebe27 100644
--- a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dce0e2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dce0e2();
diff --git a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl
index 3ff8e49..c6e9aa6 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_dd7d81() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dd7d81();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dd7d81();
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 063a573..2ba121d 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dd7d81();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dd7d81();
   return;
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 063a573..2ba121d 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dd7d81();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dd7d81();
   return;
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 3b431fd..6375e47 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
-void textureStore_dd7d81() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_dd7d81();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 8b7e58d..626d353 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_dd7d81(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1)));
+void textureStore_dd7d81(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_dd7d81(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_dd7d81(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_dd7d81(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_dd7d81(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_dd7d81(tint_symbol_2);
   return;
 }
 
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 0ca8cbe..8030ab7 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_dd7d81 "textureStore_dd7d81"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_dd7d81 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_dd7d81
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_dd7d81
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_dd7d81
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_dd7d81
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 652c180..dfc2486 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dd7d81();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dd7d81();
diff --git a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl
index 9f9995c..caabb34 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_dd8b29() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dd8b29();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dd8b29();
diff --git a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.dxc.hlsl
index 2622fab..9faf9e1 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dd8b29();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dd8b29();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.fxc.hlsl
index 2622fab..9faf9e1 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dd8b29();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dd8b29();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.glsl
index e4dd16a..5845ef3 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_dd8b29() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_dd8b29();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.msl
index 163533c..f9eaa76 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_dd8b29(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_dd8b29(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_dd8b29(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_dd8b29(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_dd8b29(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_dd8b29(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_dd8b29(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.spvasm
index 419eca6..73a6cf6 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.spvasm
@@ -1,79 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_dd8b29 "textureStore_dd8b29"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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_dd8b29 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %24 = OpCompositeExtract %int %23 0
-         %25 = OpCompositeExtract %int %23 1
-         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_dd8b29 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_dd8b29
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_dd8b29
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_dd8b29
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_dd8b29
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_dd8b29
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.wgsl
index 5e5a4fe..866fb61 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dd8b29();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dd8b29();
diff --git a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl
index 537b4f5..190afb4 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_dde364() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dde364();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dde364();
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 8042778..03fa8d2 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dde364();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dde364();
   return;
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 8042778..03fa8d2 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dde364();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dde364();
   return;
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 fbffd16..86e3ec2 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_dde364(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1);
+void textureStore_dde364(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_dde364(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_dde364(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_dde364(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_dde364(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_dde364(tint_symbol_2);
   return;
 }
 
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 6f48965..e4fad0f 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_dde364 "textureStore_dde364"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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
-         %24 = OpCompositeExtract %int %23 0
-         %25 = OpCompositeExtract %int %23 1
-         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
-               OpImageWrite %18 %26 %29
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_dde364 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpCompositeConstruct %v3int %16 %17 %int_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_dde364
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_dde364
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_dde364
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_dde364
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 0ba15ea..1715af7 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dde364();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dde364();
diff --git a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl
index f1f423d..334451c 100644
--- a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_de38e5() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_de38e5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_de38e5();
diff --git a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.dxc.hlsl
index 37e7e1f..46f549d 100644
--- a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_de38e5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_de38e5();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.fxc.hlsl
index 37e7e1f..46f549d 100644
--- a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_de38e5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_de38e5();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.glsl
index 0eae7df..6234ed7 100644
--- a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
-void textureStore_de38e5() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_de38e5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.msl
index 218e331..6e067b5 100644
--- a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_de38e5(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_de38e5(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_de38e5(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_de38e5(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_de38e5(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_de38e5(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_de38e5(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.spvasm
index 17ec2f0..43d61ff 100644
--- a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_de38e5 "textureStore_de38e5"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_de38e5 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_de38e5 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_de38e5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_de38e5
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_de38e5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_de38e5
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_de38e5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.wgsl
index 7a0562f..9df8649 100644
--- a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_de38e5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_de38e5();
diff --git a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl
index 998b230..c6f7445 100644
--- a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_de4b94() {
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_de4b94();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_de4b94();
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 0c522bd..8007d1b 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_de4b94();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_de4b94();
   return;
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 0c522bd..8007d1b 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_de4b94();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_de4b94();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.glsl
index c357eba..674f848 100644
--- a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_de4b94() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_de4b94();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 3d16bb9..d677377 100644
--- a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_de4b94(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1u));
+void textureStore_de4b94(texture1d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_de4b94(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_de4b94(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_de4b94(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_de4b94(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_de4b94(tint_symbol_2);
   return;
 }
 
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 d9fd4d1..e4408be 100644
--- a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_de4b94 "textureStore_de4b94"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
       %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 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_de4b94 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_de4b94
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_de4b94
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_de4b94
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_de4b94
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 154031e..8122d93 100644
--- a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_de4b94();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_de4b94();
diff --git a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl
index 1bb2806..15799e4 100644
--- a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_df0c51() {
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_df0c51();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_df0c51();
diff --git a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.dxc.hlsl
index 061853e..d31dc79 100644
--- a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_df0c51();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_df0c51();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.fxc.hlsl
index 061853e..d31dc79 100644
--- a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_df0c51();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_df0c51();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.glsl
index bb6f39e..bf08136 100644
--- a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage3D arg_0;
-void textureStore_df0c51() {
-  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_df0c51();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.msl
index 32f9bb9..1ea8c69 100644
--- a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_df0c51(texture3d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(uint3(1u))); tint_symbol_1.fence();
+void textureStore_df0c51(texture3d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(uint3(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_df0c51(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_df0c51(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_df0c51(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_df0c51(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_df0c51(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.spvasm
index c5c0e77..3a3611c 100644
--- a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_df0c51 "textureStore_df0c51"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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_df0c51 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_df0c51 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_df0c51
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_df0c51
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_df0c51
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_df0c51
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_df0c51
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.wgsl
index 5555a7e..595dbc7 100644
--- a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_df0c51();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_df0c51();
diff --git a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl
index 5940644..dc87e7f 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_df2ca4() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_df2ca4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_df2ca4();
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 bee600c..211b218 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_df2ca4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_df2ca4();
   return;
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 bee600c..211b218 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_df2ca4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_df2ca4();
   return;
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 e122dfd..9316af0 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_df2ca4() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_df2ca4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 d837be8..f0b3891 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_df2ca4(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u);
+void textureStore_df2ca4(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_df2ca4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_df2ca4(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_df2ca4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_df2ca4(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_df2ca4(tint_symbol_2);
   return;
 }
 
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 2bb379f..0128e29 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.spvasm
@@ -1,80 +1,54 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_df2ca4 "textureStore_df2ca4"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %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
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_df2ca4 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_df2ca4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_df2ca4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_df2ca4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_df2ca4
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = 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 5b7143b..bcfc293 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_df2ca4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_df2ca4();
diff --git a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl
index 526903f..791f4af 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_dfa9a1() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dfa9a1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dfa9a1();
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 d805ab9..0c3c989 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dfa9a1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dfa9a1();
   return;
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 d805ab9..0c3c989 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
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dfa9a1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dfa9a1();
   return;
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 27d7aad..06a128b 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_dfa9a1(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1);
+void textureStore_dfa9a1(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_dfa9a1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_dfa9a1(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_dfa9a1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_dfa9a1(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_dfa9a1(tint_symbol_2);
   return;
 }
 
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 8917383..2a9d97b 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.spvasm
@@ -1,81 +1,55 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_dfa9a1 "textureStore_dfa9a1"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %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
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_dfa9a1 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_dfa9a1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_dfa9a1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_dfa9a1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_dfa9a1
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = 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 0c3ebaa..66bf3de 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dfa9a1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dfa9a1();
diff --git a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl
index 11f2a92..d03826c 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_dffb13() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dffb13();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dffb13();
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 b7b4bff..bfd9c98 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dffb13();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dffb13();
   return;
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 b7b4bff..bfd9c98 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dffb13();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dffb13();
   return;
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 212a8bc..912411d108 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_dffb13(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u);
+void textureStore_dffb13(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_dffb13(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_dffb13(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_dffb13(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_dffb13(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_dffb13(tint_symbol_2);
   return;
 }
 
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 a8676ca..17548b5 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.spvasm
@@ -1,82 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_dffb13 "textureStore_dffb13"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_dffb13 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_dffb13
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_dffb13
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_dffb13
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_dffb13
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 e1cdbc5..d2fe277 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dffb13();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dffb13();
diff --git a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl
index df9c3c1..4af5b15 100644
--- a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_e077e7() {
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e077e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e077e7();
diff --git a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.dxc.hlsl
index d92ce61..5492020 100644
--- a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e077e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e077e7();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.fxc.hlsl
index d92ce61..5492020 100644
--- a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e077e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e077e7();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.msl
index 54d45a1..daaaf57 100644
--- a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e077e7(texture1d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1)); tint_symbol_1.fence();
+void textureStore_e077e7(texture1d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_e077e7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e077e7(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e077e7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e077e7(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e077e7(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.spvasm
index 3e89fff..5eac4d9 100644
--- a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.spvasm
@@ -1,73 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e077e7 "textureStore_e077e7"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %22 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_e077e7 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %21
+         %13 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_e077e7 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_e077e7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_e077e7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_e077e7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_e077e7
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_e077e7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.wgsl
index 020d4f5..2709ec3 100644
--- a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e077e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e077e7();
diff --git a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl
index 4682287..9f447fd 100644
--- a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_e0b666() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e0b666();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e0b666();
diff --git a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.dxc.hlsl
index 65e8455..c4bb346 100644
--- a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e0b666();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e0b666();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.fxc.hlsl
index 65e8455..c4bb346 100644
--- a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e0b666();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e0b666();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.glsl
index e80fc1e..b952bbc 100644
--- a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_e0b666() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_e0b666();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.msl
index 18b09f0..97d5022 100644
--- a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e0b666(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1));
+void textureStore_e0b666(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_e0b666(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e0b666(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e0b666(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e0b666(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e0b666(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.spvasm
index 3684085..d38d4eb 100644
--- a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e0b666 "textureStore_e0b666"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %22 = OpTypeFunction %v4float
-%textureStore_e0b666 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_e0b666 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_e0b666
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_e0b666
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_e0b666
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_e0b666
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_e0b666
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.wgsl
index f03025b..e0f25e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e0b666();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e0b666();
diff --git a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl
index a3acae7..df1ceb0 100644
--- a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_e1784d() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e1784d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e1784d();
diff --git a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.dxc.hlsl
index b3be032..526df72 100644
--- a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e1784d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e1784d();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.fxc.hlsl
index b3be032..526df72 100644
--- a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e1784d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e1784d();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.glsl
index 4ebe98c..560541f 100644
--- a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_e1784d() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_e1784d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.msl
index e47fdb3..3b070f3 100644
--- a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e1784d(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_e1784d(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_e1784d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e1784d(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e1784d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e1784d(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e1784d(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.spvasm
index 26bfa3c..b39bffb 100644
--- a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.spvasm
@@ -1,79 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e1784d "textureStore_e1784d"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_e1784d = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_e1784d = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_e1784d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_e1784d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_e1784d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_e1784d
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_e1784d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.wgsl
index 82dddc1..525471c 100644
--- a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e1784d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e1784d();
diff --git a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl
index 7f52d88..4bfe818 100644
--- a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_e38281() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e38281();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e38281();
diff --git a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.dxc.hlsl
index c2bcddf..3821828 100644
--- a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e38281();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e38281();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.fxc.hlsl
index c2bcddf..3821828 100644
--- a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e38281();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e38281();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.glsl
index 6af03bc..bf784b2 100644
--- a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_e38281() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_e38281();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.msl
index d3e9a73..c6b5588 100644
--- a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e38281(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u);
+void textureStore_e38281(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_e38281(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e38281(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e38281(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e38281(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e38281(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.spvasm
index 170b5f4..4d6eb66 100644
--- a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.spvasm
@@ -1,77 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e38281 "textureStore_e38281"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_e38281 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_e38281 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_e38281
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_e38281
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_e38281
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_e38281
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_e38281
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.wgsl
index 5b420f5..9ab4f2b 100644
--- a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e38281();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e38281();
diff --git a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl
index 0f4541a..b50b079 100644
--- a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_e46fd8() {
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e46fd8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e46fd8();
diff --git a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.dxc.hlsl
index 66f14af..b9fe825 100644
--- a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e46fd8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e46fd8();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.fxc.hlsl
index 66f14af..b9fe825 100644
--- a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e46fd8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e46fd8();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.glsl
index b12691a..49207bf 100644
--- a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_e46fd8() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_e46fd8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.msl
index c64fe50..0ba4cc8 100644
--- a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e46fd8(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u))); tint_symbol_1.fence();
+void textureStore_e46fd8(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_e46fd8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e46fd8(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e46fd8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e46fd8(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e46fd8(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.spvasm
index a64e91c..daa1e8f 100644
--- a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e46fd8 "textureStore_e46fd8"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_e46fd8 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_e46fd8 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_e46fd8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_e46fd8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_e46fd8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_e46fd8
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_e46fd8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.wgsl
index 8571bcc..4dba6b0 100644
--- a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e46fd8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e46fd8();
diff --git a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl
index 2a3fbc2..af1f172 100644
--- a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_e72bdc() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e72bdc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e72bdc();
diff --git a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.dxc.hlsl
index 8dfb72b..3c59b9c 100644
--- a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e72bdc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e72bdc();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.fxc.hlsl
index 8dfb72b..3c59b9c 100644
--- a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e72bdc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e72bdc();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.glsl
index a51d054..85093ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_e72bdc() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_e72bdc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.msl
index 4fcb55b..11f4d5e 100644
--- a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e72bdc(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_e72bdc(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_e72bdc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e72bdc(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e72bdc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e72bdc(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e72bdc(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.spvasm
index 6545d2c..f0d3038 100644
--- a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.spvasm
@@ -1,79 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e72bdc "textureStore_e72bdc"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_e72bdc = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_e72bdc = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %21 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_e72bdc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_e72bdc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_e72bdc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_e72bdc
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_e72bdc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.wgsl
index 81a44b4..5471257 100644
--- a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e72bdc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e72bdc();
diff --git a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl
index de9d4a6..bf3ceb9 100644
--- a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_e7c6d8() {
   textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e7c6d8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e7c6d8();
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 38411db..b3e3b8e 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e7c6d8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e7c6d8();
   return;
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 38411db..b3e3b8e 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
@@ -4,22 +4,6 @@
   arg_0[1u] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e7c6d8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e7c6d8();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.glsl
index 7e952f1..5a093f2 100644
--- a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_e7c6d8() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_e7c6d8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 d38883f..f0d1f2a 100644
--- a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e7c6d8(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1u));
+void textureStore_e7c6d8(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1u));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_e7c6d8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e7c6d8(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e7c6d8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e7c6d8(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e7c6d8(tint_symbol_2);
   return;
 }
 
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 fae0eed..4ce84e9 100644
--- a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e7c6d8 "textureStore_e7c6d8"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
+    %v4float = OpTypeVector %float 4
     %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 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_e7c6d8 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %uint_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_e7c6d8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_e7c6d8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_e7c6d8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_e7c6d8
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 0ba10b3..8744d2c 100644
--- a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e7c6d8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e7c6d8();
diff --git a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl
index 09d20af..9c7768e 100644
--- a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_e87f6e() {
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e87f6e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e87f6e();
diff --git a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.dxc.hlsl
index 9a93cf9..d3ef894 100644
--- a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e87f6e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e87f6e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.fxc.hlsl
index 9a93cf9..d3ef894 100644
--- a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e87f6e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e87f6e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.glsl
index e828739..1b15646 100644
--- a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_e87f6e() {
-  imageStore(arg_0, ivec2(1, 0), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_e87f6e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.msl
index 45c65f5..2c931c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e87f6e(texture1d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1)); tint_symbol_1.fence();
+void textureStore_e87f6e(texture1d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_e87f6e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e87f6e(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e87f6e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e87f6e(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e87f6e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.spvasm
index ba3b680..17e40ff 100644
--- a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.spvasm
@@ -1,72 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e87f6e "textureStore_e87f6e"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %22 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_e87f6e = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %21
+         %13 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_e87f6e = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_e87f6e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_e87f6e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_e87f6e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_e87f6e
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_e87f6e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.wgsl
index 1921b65..ce15242 100644
--- a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e87f6e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e87f6e();
diff --git a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl
index 250b75c..c41a867 100644
--- a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_e885e8() {
   textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e885e8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e885e8();
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 9ef224d..43b52bb 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e885e8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e885e8();
   return;
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 9ef224d..43b52bb 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e885e8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e885e8();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.glsl
index da4adc6..00d70f3 100644
--- a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_e885e8() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_e885e8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 0c4ce64..0cdfc2a 100644
--- a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e885e8(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint(1));
+void textureStore_e885e8(texture1d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_e885e8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e885e8(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e885e8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e885e8(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e885e8(tint_symbol_2);
   return;
 }
 
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 d4c6bf7..ff93365 100644
--- a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e885e8 "textureStore_e885e8"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %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 %21
+         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_e885e8 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_e885e8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_e885e8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_e885e8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_e885e8
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 bcfb579..d58f6fb 100644
--- a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e885e8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e885e8();
diff --git a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl
index 7c7c026..faff5e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_e8cbf7() {
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e8cbf7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e8cbf7();
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 f9b0b50..1bbfbb9 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e8cbf7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e8cbf7();
   return;
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 f9b0b50..1bbfbb9 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e8cbf7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e8cbf7();
   return;
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 8f713d3..471ae79 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_e8cbf7() {
-  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_e8cbf7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 dcc460b..f2ef917 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e8cbf7(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)));
+void textureStore_e8cbf7(texture2d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_e8cbf7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e8cbf7(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e8cbf7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e8cbf7(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e8cbf7(tint_symbol_2);
   return;
 }
 
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 1ae9ed8..02ebee6 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e8cbf7 "textureStore_e8cbf7"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %13 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_e8cbf7 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_e8cbf7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_e8cbf7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_e8cbf7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_e8cbf7
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 48c3fd0..8ce41d3 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e8cbf7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e8cbf7();
diff --git a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl
index 377b0ca..e27dbe6 100644
--- a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_ea30d2() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ea30d2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ea30d2();
diff --git a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.dxc.hlsl
index ff371ca..dc14c0a 100644
--- a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ea30d2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ea30d2();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.fxc.hlsl
index ff371ca..dc14c0a 100644
--- a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ea30d2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ea30d2();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.msl
index 79c0240..87c8860 100644
--- a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ea30d2(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_ea30d2(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_ea30d2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ea30d2(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ea30d2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ea30d2(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ea30d2(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.spvasm
index e6bdb65..33e6f68 100644
--- a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ea30d2 "textureStore_ea30d2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_ea30d2 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_ea30d2 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_ea30d2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_ea30d2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_ea30d2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_ea30d2
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_ea30d2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.wgsl
index afc34ef..9c71283 100644
--- a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ea30d2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ea30d2();
diff --git a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl
index 2b9888d..1292df5 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_eb702f() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_eb702f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_eb702f();
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 a7466fd..0c038d0 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_eb702f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_eb702f();
   return;
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 a7466fd..0c038d0 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_eb702f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_eb702f();
   return;
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 6b4a54b..bbcc780 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image3D arg_0;
-void textureStore_eb702f() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_eb702f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 56021c4..bcc3a4d 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_eb702f(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1)));
+void textureStore_eb702f(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_eb702f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_eb702f(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_eb702f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_eb702f(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_eb702f(tint_symbol_2);
   return;
 }
 
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 fbb6f18..d755cf6 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_eb702f "textureStore_eb702f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_eb702f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_eb702f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_eb702f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_eb702f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_eb702f
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 449e726..1cd26ea 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_eb702f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_eb702f();
diff --git a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl
index f9fac8f..baf53df 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_eb78b9() {
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_eb78b9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_eb78b9();
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 9a85184..bcc2946 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_eb78b9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_eb78b9();
   return;
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 9a85184..bcc2946 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_eb78b9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_eb78b9();
   return;
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 5742abe..30f24fc 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_eb78b9() {
-  imageStore(arg_0, ivec3(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_eb78b9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 3d0f17b..a4b75a2 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_eb78b9(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(int3(1)));
+void textureStore_eb78b9(texture3d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_eb78b9(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_eb78b9(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_eb78b9(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_eb78b9(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_eb78b9(tint_symbol_2);
   return;
 }
 
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 a257eea..8700165 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_eb78b9 "textureStore_eb78b9"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %13 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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 %21 %23
+         %15 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_eb78b9 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %13 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_eb78b9
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_eb78b9
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_eb78b9
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_eb78b9
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 0b3dd17..4951a05 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_eb78b9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_eb78b9();
diff --git a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl
index c54cd63..2e1a224 100644
--- a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_ed6198() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ed6198();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ed6198();
diff --git a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.dxc.hlsl
index e6575ea..9329f50 100644
--- a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ed6198();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ed6198();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.fxc.hlsl
index e6575ea..9329f50 100644
--- a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ed6198();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ed6198();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.msl
index 8d39702..3477b3a 100644
--- a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ed6198(texture3d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1))); tint_symbol_1.fence();
+void textureStore_ed6198(texture3d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_ed6198(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ed6198(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ed6198(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ed6198(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ed6198(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.spvasm
index 9190b56..c20bbda 100644
--- a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.spvasm
@@ -1,73 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ed6198 "textureStore_ed6198"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_ed6198 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_ed6198 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_ed6198
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_ed6198
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_ed6198
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_ed6198
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_ed6198
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.wgsl
index 150245a..dcd770a 100644
--- a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ed6198();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ed6198();
diff --git a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl
index c07c7b8..9f6b7a8 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_ee6acc() {
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ee6acc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ee6acc();
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 415d2c9..4488b2d 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ee6acc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ee6acc();
   return;
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 415d2c9..4488b2d 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ee6acc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ee6acc();
   return;
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 2349a9e..5423c52 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ee6acc(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(int3(1)));
+void textureStore_ee6acc(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_ee6acc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ee6acc(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ee6acc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ee6acc(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ee6acc(tint_symbol_2);
   return;
 }
 
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 98e9265..afb6fe4 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.spvasm
@@ -1,74 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ee6acc "textureStore_ee6acc"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_ee6acc = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_ee6acc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_ee6acc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_ee6acc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_ee6acc
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 0bfb99b..005a528 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ee6acc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ee6acc();
diff --git a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl
index d2b3a8d..9047a4e 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_ef9f2f() {
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ef9f2f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ef9f2f();
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 4387831..654e875 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ef9f2f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ef9f2f();
   return;
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 4387831..654e875 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ef9f2f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ef9f2f();
   return;
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 adbaa8d..e4365cf 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_ef9f2f() {
-  imageStore(arg_0, ivec3(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_ef9f2f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 1b3e79c..bb90e34 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ef9f2f(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(int3(1)));
+void textureStore_ef9f2f(texture3d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_ef9f2f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ef9f2f(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ef9f2f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ef9f2f(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ef9f2f(tint_symbol_2);
   return;
 }
 
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 df69de9..e631c93 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ef9f2f "textureStore_ef9f2f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_ef9f2f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_ef9f2f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_ef9f2f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_ef9f2f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_ef9f2f
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 913ab9e..47f1cf4 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ef9f2f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ef9f2f();
diff --git a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl
index be170ea..668c35f 100644
--- a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_f05928() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f05928();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f05928();
diff --git a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.dxc.hlsl
index 5262325..bf38605 100644
--- a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f05928();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f05928();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.fxc.hlsl
index 5262325..bf38605 100644
--- a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f05928();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f05928();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.glsl
index 34fd7fe..3c40217 100644
--- a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_f05928() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_f05928();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.msl
index 58625a8..fe192f7 100644
--- a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f05928(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u); tint_symbol_1.fence();
+void textureStore_f05928(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1u); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_f05928(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f05928(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f05928(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f05928(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f05928(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.spvasm
index 120ae9b..e273634 100644
--- a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f05928 "textureStore_f05928"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_f05928 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_f05928 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_f05928
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_f05928
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_f05928
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_f05928
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_f05928
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.wgsl
index c055281..9a642d3 100644
--- a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f05928();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f05928();
diff --git a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl
index a98e664..92e5f28 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_f1e6d3() {
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f1e6d3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f1e6d3();
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 1e8c583..9edd5c0 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f1e6d3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f1e6d3();
   return;
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 1e8c583..9edd5c0 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f1e6d3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f1e6d3();
   return;
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 7f98e81..fb0230e 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_f1e6d3() {
-  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_f1e6d3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 7bdf79d..0b285c5 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f1e6d3(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint3(uint3(1u)));
+void textureStore_f1e6d3(texture3d<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_f1e6d3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f1e6d3(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f1e6d3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f1e6d3(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f1e6d3(tint_symbol_2);
   return;
 }
 
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 d7b74d1..01c8b80 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f1e6d3 "textureStore_f1e6d3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
       %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 %22 %25
+         %17 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_f1e6d3 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_f1e6d3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_f1e6d3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_f1e6d3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_f1e6d3
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 2906295..dad99c5 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f1e6d3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f1e6d3();
diff --git a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl
index 82830bf..29ab3c0 100644
--- a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_f64d69() {
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f64d69();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f64d69();
diff --git a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.dxc.hlsl
index ea51966..999a76c 100644
--- a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f64d69();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f64d69();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.fxc.hlsl
index ea51966..999a76c 100644
--- a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f64d69();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f64d69();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.glsl
index 3f4d3d5..dab8258 100644
--- a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2D arg_0;
-void textureStore_f64d69() {
-  imageStore(arg_0, ivec2(1, 0), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_f64d69();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.msl
index aad284f..8c5d6d2 100644
--- a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f64d69(texture1d<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint(1)); tint_symbol_1.fence();
+void textureStore_f64d69(texture1d<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_f64d69(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f64d69(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f64d69(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f64d69(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f64d69(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.spvasm
index 81222bd..8503bec 100644
--- a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.spvasm
@@ -1,72 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f64d69 "textureStore_f64d69"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %22 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_f64d69 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %21
+         %13 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_f64d69 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureStore_f64d69
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %textureStore_f64d69
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_f64d69
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_f64d69
+%compute_main = OpFunction %void None %5
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %textureStore_f64d69
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.wgsl
index 79f2031..f30b6cb 100644
--- a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f64d69();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f64d69();
diff --git a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl
index 2311858..c59ddfd 100644
--- a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_f6f392() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f6f392();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f6f392();
diff --git a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.dxc.hlsl
index e3c5a21..2b262b0 100644
--- a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f6f392();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f6f392();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.fxc.hlsl
index e3c5a21..2b262b0 100644
--- a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f6f392();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f6f392();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.glsl
index 930d82f..f12e026 100644
--- a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_f6f392() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_f6f392();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.msl
index 61b503f..2a3f382 100644
--- a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f6f392(texture2d_array<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_f6f392(texture2d_array<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_f6f392(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f6f392(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f6f392(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f6f392(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f6f392(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.spvasm
index 8eb0e85..81761c6 100644
--- a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.spvasm
@@ -1,79 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f6f392 "textureStore_f6f392"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %31 = OpTypeFunction %v4float
-%textureStore_f6f392 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %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
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_f6f392 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpBitcast %uint %int_1
+         %21 = OpCompositeConstruct %v3uint %16 %17 %18
+               OpImageWrite %10 %21 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_f6f392
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_f6f392
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_f6f392
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_f6f392
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_f6f392
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.wgsl
index 59e204c..3de96af 100644
--- a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f6f392();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f6f392();
diff --git a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl
index 1d8dbb2..59f096a 100644
--- a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl
@@ -42,12 +42,6 @@
 fn textureStore_f7b0ab() {
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f7b0ab();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f7b0ab();
diff --git a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.dxc.hlsl
index 6dc72f9..55c393f 100644
--- a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f7b0ab();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f7b0ab();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.fxc.hlsl
index 6dc72f9..55c393f 100644
--- a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f7b0ab();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f7b0ab();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.msl
index 39fee91..e70a2ed 100644
--- a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f7b0ab(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u);
+void textureStore_f7b0ab(texture2d_array<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(uint2(1u)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_f7b0ab(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f7b0ab(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f7b0ab(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f7b0ab(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f7b0ab(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.spvasm
index aa612b8..ed984bf 100644
--- a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.spvasm
@@ -1,78 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f7b0ab "textureStore_f7b0ab"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %15 = OpConstantComposite %v2uint %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %28 = OpTypeFunction %v4float
-%textureStore_f7b0ab = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %uint %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
-               OpImageWrite %17 %25 %27
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_f7b0ab = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %15 1
+         %18 = OpCompositeConstruct %v3uint %16 %17 %uint_1
+               OpImageWrite %10 %18 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_f7b0ab
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_f7b0ab
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_f7b0ab
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_f7b0ab
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_f7b0ab
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.wgsl
index dfd8972..b42803b 100644
--- a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f7b0ab();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f7b0ab();
diff --git a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl
index dd5b38f..7fcabd6 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_f8aaf9() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f8aaf9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f8aaf9();
diff --git a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.dxc.hlsl
index 5eb409b..bc481e4 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f8aaf9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f8aaf9();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.fxc.hlsl
index 5eb409b..bc481e4 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f8aaf9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f8aaf9();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.glsl
index 27adb95..674d636 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_f8aaf9() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_f8aaf9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.msl
index e23dd5a..816b3ff 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f8aaf9(texture2d_array<int, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1); tint_symbol_1.fence();
+void textureStore_f8aaf9(texture2d_array<int, access::read_write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_f8aaf9(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f8aaf9(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f8aaf9(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f8aaf9(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f8aaf9(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.spvasm
index 67e23a5..2baa53b 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.spvasm
@@ -1,77 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f8aaf9 "textureStore_f8aaf9"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
-         %28 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_f8aaf9 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_f8aaf9 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpCompositeConstruct %v3int %15 %16 %int_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_f8aaf9
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_f8aaf9
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_f8aaf9
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_f8aaf9
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_f8aaf9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.wgsl
index 0e06754..0139900 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f8aaf9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f8aaf9();
diff --git a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl
index 09a49aa..d5e02e1 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_f8dead() {
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f8dead();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f8dead();
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 a13e81d..c054b1b 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f8dead();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f8dead();
   return;
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 a13e81d..c054b1b 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
@@ -4,22 +4,6 @@
   arg_0[(1).xxx] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f8dead();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f8dead();
   return;
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 beb734c..9335a14 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_f8dead() {
-  imageStore(arg_0, ivec3(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_f8dead();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 014cb5d..c09c8dc 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f8dead(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint3(int3(1)));
+void textureStore_f8dead(texture3d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint3(int3(1)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_f8dead(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f8dead(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f8dead(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f8dead(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f8dead(tint_symbol_2);
   return;
 }
 
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 a38ca1c..5934322 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.spvasm
@@ -1,76 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f8dead "textureStore_f8dead"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
      %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 %22 %25
+         %17 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_f8dead = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_f8dead
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_f8dead
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_f8dead
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_f8dead
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 e2d9e60..6df9826 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f8dead();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f8dead();
diff --git a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl
index 943998f..aa491b1 100644
--- a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_f975a0() {
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f975a0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f975a0();
diff --git a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.dxc.hlsl
index 76ecc00..4786f36 100644
--- a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f975a0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f975a0();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.fxc.hlsl
index 76ecc00..4786f36 100644
--- a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[(1).xx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f975a0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f975a0();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.glsl
index db2ba38..a6171e9 100644
--- a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_f975a0() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_f975a0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.msl
index ef9fdd9..2b0ea23 100644
--- a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f975a0(texture2d<float, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint2(int2(1))); tint_symbol_1.fence();
+void textureStore_f975a0(texture2d<float, access::read_write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint2(int2(1))); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_f975a0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f975a0(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f975a0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f975a0(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f975a0(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.spvasm
index 25e7c8c..3c6991e 100644
--- a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.spvasm
@@ -1,72 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f975a0 "textureStore_f975a0"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %21 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %24 = OpTypeFunction %v4float
-%textureStore_f975a0 = OpFunction %void None %12
-         %15 = OpLabel
-         %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_f975a0 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_f975a0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_f975a0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_f975a0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_f975a0
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_f975a0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.wgsl
index 2d32d96..8c8c7dc 100644
--- a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f975a0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f975a0();
diff --git a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl
index 2ad9735..5fdd775 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_f9be83() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f9be83();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f9be83();
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 70b6cdb..cdfa35c 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f9be83();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f9be83();
   return;
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 70b6cdb..cdfa35c 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f9be83();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f9be83();
   return;
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 445e9a9..f27dcf5 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f9be83(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1);
+void textureStore_f9be83(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_f9be83(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f9be83(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f9be83(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f9be83(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f9be83(tint_symbol_2);
   return;
 }
 
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 c43c393..4e220f2 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.spvasm
@@ -1,79 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f9be83 "textureStore_f9be83"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_f9be83 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpCompositeConstruct %v3int %15 %16 %int_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_f9be83
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_f9be83
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_f9be83
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_f9be83
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = 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 8752333..1ba00b5 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f9be83();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f9be83();
diff --git a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl
index 9e0f2ec..dad9661 100644
--- a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_fb9a8f() {
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fb9a8f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fb9a8f();
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 6c643a3..f00684d 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fb9a8f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fb9a8f();
   return;
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 6c643a3..f00684d 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
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fb9a8f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fb9a8f();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.glsl
index 8ceaeac..43795ba 100644
--- a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_fb9a8f() {
-  imageStore(arg_0, ivec2(1, 0), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_fb9a8f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 6f57faf..5081554 100644
--- a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_fb9a8f(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1));
+void textureStore_fb9a8f(texture1d<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_fb9a8f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_fb9a8f(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_fb9a8f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_fb9a8f(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_fb9a8f(tint_symbol_2);
   return;
 }
 
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 15c1562..52b54f7 100644
--- a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.spvasm
@@ -1,75 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_fb9a8f "textureStore_fb9a8f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
      %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 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_fb9a8f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_fb9a8f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_fb9a8f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_fb9a8f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_fb9a8f
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = 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 43d1b31..fe5fc83 100644
--- a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fb9a8f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fb9a8f();
diff --git a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl
index badac9b..a1d6b05 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_fbf53f() {
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fbf53f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fbf53f();
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 ac3bc36..214d1bc 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fbf53f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fbf53f();
   return;
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 ac3bc36..214d1bc 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fbf53f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fbf53f();
   return;
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 8f0802f..4e50bf5 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_fbf53f() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_fbf53f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 287601b..c81bb62 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_fbf53f(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(1), uint2(int2(1)), 1);
+void textureStore_fbf53f(texture2d_array<int, access::write> tint_symbol) {
+  tint_symbol.write(int4(1), uint2(int2(1)), 1);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_fbf53f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_fbf53f(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_fbf53f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_fbf53f(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_fbf53f(tint_symbol_2);
   return;
 }
 
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 d556e7c..140eb40 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.spvasm
@@ -1,78 +1,49 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_fbf53f "textureStore_fbf53f"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v2int %int_1 %int_1
+         %14 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %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
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %int %22 1
-         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
-               OpImageWrite %18 %25 %27
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%textureStore_fbf53f = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %int %14 0
+         %16 = OpCompositeExtract %int %14 1
+         %17 = OpCompositeConstruct %v3int %15 %16 %int_1
+               OpImageWrite %10 %17 %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_fbf53f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %textureStore_fbf53f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_fbf53f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_fbf53f
+%compute_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = 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 397e733..938fe70 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fbf53f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fbf53f();
diff --git a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl
index 50d23c1..bfe31b3 100644
--- a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_fc916e() {
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fc916e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fc916e();
diff --git a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.dxc.hlsl
index 5a72835..3fe4cef 100644
--- a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fc916e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fc916e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.fxc.hlsl
index 5a72835..3fe4cef 100644
--- a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fc916e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fc916e();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.glsl
index 76828e8..b3684c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_fc916e() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_fc916e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.msl
index bff098b..76e0f0d 100644
--- a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_fc916e(texture2d_array<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1); tint_symbol_1.fence();
+void textureStore_fc916e(texture2d_array<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(uint2(1u)), 1); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_fc916e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_fc916e(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_fc916e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_fc916e(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_fc916e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.spvasm
index 69b16e1..bdd412e 100644
--- a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.spvasm
@@ -1,80 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_fc916e "textureStore_fc916e"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %14 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_fc916e = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_fc916e = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %15 = OpCompositeExtract %uint %14 0
+         %16 = OpCompositeExtract %uint %14 1
+         %17 = OpBitcast %uint %int_1
+         %20 = OpCompositeConstruct %v3uint %15 %16 %17
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_fc916e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_fc916e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_fc916e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_fc916e
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_fc916e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.wgsl
index 6f752c1..f8d778a 100644
--- a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fc916e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fc916e();
diff --git a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl
index 5e7057f..15b7528 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_fcbe66() {
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fcbe66();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fcbe66();
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 6d2e67c..6ce16db 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fcbe66();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fcbe66();
   return;
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 6d2e67c..6ce16db 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
@@ -4,22 +4,6 @@
   arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fcbe66();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fcbe66();
   return;
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 1a089ef..29bf70a 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_fcbe66(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u)));
+void textureStore_fcbe66(texture3d<float, access::write> tint_symbol) {
+  tint_symbol.write(float4(1.0f), uint3(uint3(1u)));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_fcbe66(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_fcbe66(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_fcbe66(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_fcbe66(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_fcbe66(tint_symbol_2);
   return;
 }
 
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 8b882f6..665ecc1 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.spvasm
@@ -1,74 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_fcbe66 "textureStore_fcbe66"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+    %v4float = OpTypeVector %float 4
     %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 %21 %23
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%textureStore_fcbe66 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %14 %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_fcbe66
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %textureStore_fcbe66
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_fcbe66
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_fcbe66
+%compute_main = OpFunction %void None %5
+         %22 = OpLabel
+         %23 = 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 2908104..d3e9cde 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fcbe66();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fcbe66();
diff --git a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl
index cca5ab9..ab60dc7 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_fd350c() {
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fd350c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fd350c();
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 1347efb..fae6de5 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fd350c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fd350c();
   return;
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 1347efb..fae6de5 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
@@ -4,22 +4,6 @@
   arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fd350c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fd350c();
   return;
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 72b60d5..c86379d 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_fd350c() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_fd350c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 9cb484c..8347790 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_fd350c(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u);
+void textureStore_fd350c(texture2d_array<uint, access::write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint2(int2(1)), 1u);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_fd350c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_fd350c(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_fd350c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_fd350c(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_fd350c(tint_symbol_2);
   return;
 }
 
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 8c0dc58..c6b9601 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.spvasm
@@ -1,81 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_fd350c "textureStore_fd350c"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v2int %int_1 %int_1
+         %15 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %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
-         %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
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_fd350c = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+         %16 = OpCompositeExtract %int %15 0
+         %17 = OpCompositeExtract %int %15 1
+         %18 = OpBitcast %int %uint_1
+         %20 = OpCompositeConstruct %v3int %16 %17 %18
+               OpImageWrite %10 %20 %22
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_fd350c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_fd350c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_fd350c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_fd350c
+%compute_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = 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 cade5ee..810fb8e 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fd350c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fd350c();
diff --git a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl
index 9f5217f..ae43afc 100644
--- a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl
@@ -40,12 +40,6 @@
 fn textureStore_ff23b3() {
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ff23b3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ff23b3();
diff --git a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.dxc.hlsl
index 9b8e10b..eae17ce 100644
--- a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.dxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ff23b3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ff23b3();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.fxc.hlsl
index 9b8e10b..eae17ce 100644
--- a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.fxc.hlsl
@@ -4,22 +4,6 @@
   arg_0[1] = (1u).xxxx;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ff23b3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ff23b3();
   return;
diff --git a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.glsl
index b367c89..d2555bb 100644
--- a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.glsl
@@ -1,24 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_ff23b3() {
-  imageStore(arg_0, ivec2(1, 0), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_ff23b3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.msl
index 9dbed19..0b35bba 100644
--- a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.msl
@@ -1,33 +1,17 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ff23b3(texture1d<uint, access::read_write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(1u), uint(1)); tint_symbol_1.fence();
+void textureStore_ff23b3(texture1d<uint, access::read_write> tint_symbol) {
+  tint_symbol.write(uint4(1u), uint(1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_ff23b3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ff23b3(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ff23b3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ff23b3(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ff23b3(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.spvasm
index 7c84e1d..0127e69 100644
--- a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.spvasm
@@ -1,74 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ff23b3 "textureStore_ff23b3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
      %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_ff23b3 = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %23
+         %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%textureStore_ff23b3 = OpFunction %void None %5
+          %8 = OpLabel
+         %10 = OpLoad %3 %arg_0
+               OpImageWrite %10 %int_1 %15
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_ff23b3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %textureStore_ff23b3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_ff23b3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_ff23b3
+%compute_main = OpFunction %void None %5
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %textureStore_ff23b3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.wgsl
index 75f59ec..3781163 100644
--- a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.wgsl
@@ -4,12 +4,6 @@
   textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ff23b3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ff23b3();
diff --git a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl
index 3c9a15c..a948d95 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_00ca64();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_00ca64();
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 846474a..77d73ee 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_00ca64();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_00ca64();
   return;
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 846474a..77d73ee 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_00ca64();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_00ca64();
   return;
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 f25829f..3d19b9b 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_00ca64() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_00ca64();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 f99ba1f..54b3434 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_00ca64(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_00ca64(texture2d_array<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_00ca64(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_00ca64(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_00ca64(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_00ca64(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_00ca64(tint_symbol_2);
   return;
 }
 
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 5c08814..d8ed8e9 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_00ca64 "textureStore_00ca64"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_00ca64 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_00ca64 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_00ca64
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_00ca64
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_00ca64
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_00ca64
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 9672254..a080ead 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_00ca64();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_00ca64();
diff --git a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl
index 7da9c46..1eb1339 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0148bd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0148bd();
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 31cf857..cbef1be 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0148bd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0148bd();
   return;
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 31cf857..cbef1be 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0148bd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0148bd();
   return;
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 e61ec58..fb6951d 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_0148bd() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_0148bd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 c813cb2..be9e1d9 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0148bd(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_0148bd(texture2d_array<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_0148bd(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0148bd(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0148bd(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0148bd(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0148bd(tint_symbol_2);
   return;
 }
 
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 046daad..1bc28de 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0148bd "textureStore_0148bd"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_0148bd = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_0148bd = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_0148bd
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_0148bd
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_0148bd
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_0148bd
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 3da6033..739625e 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0148bd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0148bd();
diff --git a/test/tint/builtins/gen/var/textureStore/031506.wgsl b/test/tint/builtins/gen/var/textureStore/031506.wgsl
index ba3ee68..5ff5363 100644
--- a/test/tint/builtins/gen/var/textureStore/031506.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/031506.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_031506();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_031506();
diff --git a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.dxc.hlsl
index b61b9f0..d11bc97 100644
--- a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_031506();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_031506();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.fxc.hlsl
index b61b9f0..d11bc97 100644
--- a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_031506();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_031506();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.glsl
index 677f332..3ab01e1 100644
--- a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2D arg_0;
-void textureStore_031506() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_031506();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.msl
index b2e5fa9..74cfed7 100644
--- a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_031506(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_031506(texture2d<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_031506(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_031506(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_031506(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_031506(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_031506(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.spvasm
index 4b32af0..d8d6880 100644
--- a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_031506 "textureStore_031506"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_031506 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_031506 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_031506
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_031506
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_031506
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_031506
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_031506
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.wgsl
index dd9fa17..aa036a4 100644
--- a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_031506();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_031506();
diff --git a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl
index 3f5d1be..de588b9 100644
--- a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_036d0e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_036d0e();
diff --git a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.dxc.hlsl
index 3c6a055..d975a18 100644
--- a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_036d0e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_036d0e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.fxc.hlsl
index 3c6a055..d975a18 100644
--- a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_036d0e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_036d0e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.glsl
index 96895c8..7e49168 100644
--- a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_036d0e() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_036d0e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.msl
index 68a6068..7f65d64 100644
--- a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_036d0e(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_036d0e(texture3d<float, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_036d0e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_036d0e(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_036d0e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_036d0e(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_036d0e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.spvasm
index 08cb318..94e3b55 100644
--- a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_036d0e "textureStore_036d0e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_036d0e = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_036d0e = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_036d0e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_036d0e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_036d0e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_036d0e
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_036d0e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.wgsl
index 73160e5..162b756 100644
--- a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_036d0e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_036d0e();
diff --git a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl
index d5732e8..7e5ba1c 100644
--- a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_03e7a0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_03e7a0();
diff --git a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.dxc.hlsl
index 84ec31d..7213948 100644
--- a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_03e7a0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_03e7a0();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.fxc.hlsl
index 84ec31d..7213948 100644
--- a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_03e7a0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_03e7a0();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.glsl
index 113dca1..c86a0ad 100644
--- a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_03e7a0() {
-  ivec2 arg_1 = ivec2(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_03e7a0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.msl
index 8eded68..35d7bc8 100644
--- a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_03e7a0(texture2d<uint, access::read_write> tint_symbol_1) {
+void textureStore_03e7a0(texture2d<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_03e7a0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_03e7a0(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_03e7a0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_03e7a0(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_03e7a0(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.spvasm
index 0809f51..bfb198a 100644
--- a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_03e7a0 "textureStore_03e7a0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_03e7a0 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4uint
+%textureStore_03e7a0 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_03e7a0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_03e7a0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_03e7a0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_03e7a0
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_03e7a0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.wgsl
index 0129389..bf50867 100644
--- a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_03e7a0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_03e7a0();
diff --git a/test/tint/builtins/gen/var/textureStore/042b06.wgsl b/test/tint/builtins/gen/var/textureStore/042b06.wgsl
index 8848d0a..f879521 100644
--- a/test/tint/builtins/gen/var/textureStore/042b06.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/042b06.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_042b06();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_042b06();
diff --git a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.dxc.hlsl
index d8e8925..1e2b735 100644
--- a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_042b06();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_042b06();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.fxc.hlsl
index d8e8925..1e2b735 100644
--- a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_042b06();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_042b06();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.glsl
index bd03293..a9d416d 100644
--- a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_042b06() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_042b06();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.msl
index ba7560d..028bf12 100644
--- a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_042b06(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_042b06(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_042b06(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_042b06(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_042b06(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_042b06(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_042b06(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.spvasm
index a40be19..0adcf03 100644
--- a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.spvasm
@@ -1,93 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_042b06 "textureStore_042b06"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
-%textureStore_042b06 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_042b06 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_042b06
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_042b06
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_042b06
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_042b06
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_042b06
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.wgsl
index cfd2b0f..a18b1cd 100644
--- a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_042b06();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_042b06();
diff --git a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl
index f2ae370..f066e19 100644
--- a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_052a4e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_052a4e();
diff --git a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.dxc.hlsl
index c7f38cc..0017a7f 100644
--- a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_052a4e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_052a4e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.fxc.hlsl
index c7f38cc..0017a7f 100644
--- a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_052a4e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_052a4e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.glsl
index 316a285..6b6a9f3 100644
--- a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_052a4e() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_052a4e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.msl
index 2fc908a..26914d9 100644
--- a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_052a4e(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_052a4e(texture1d<float, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_052a4e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_052a4e(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_052a4e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_052a4e(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_052a4e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.spvasm
index 90a843f..975df4d 100644
--- a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.spvasm
@@ -1,82 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_052a4e "textureStore_052a4e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_052a4e = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_052a4e = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_052a4e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_052a4e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_052a4e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_052a4e
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_052a4e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.wgsl
index 02f425c..cbdb1c2 100644
--- a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_052a4e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_052a4e();
diff --git a/test/tint/builtins/gen/var/textureStore/053664.wgsl b/test/tint/builtins/gen/var/textureStore/053664.wgsl
index 303da74..bafae8b 100644
--- a/test/tint/builtins/gen/var/textureStore/053664.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/053664.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_053664();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_053664();
diff --git a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.dxc.hlsl
index 8c5922b..41a900b 100644
--- a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_053664();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_053664();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.fxc.hlsl
index 8c5922b..41a900b 100644
--- a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_053664();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_053664();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.glsl
index ca10fa8..a075fe9 100644
--- a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_053664() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_053664();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.msl
index 89be4d1..c8171c0 100644
--- a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_053664(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_053664(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_053664(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_053664(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_053664(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_053664(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_053664(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.spvasm
index ffae8d0..51bbfc7 100644
--- a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.spvasm
@@ -1,93 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_053664 "textureStore_053664"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
-%textureStore_053664 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_053664 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_053664
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_053664
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_053664
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_053664
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_053664
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.wgsl
index 357b853..98a702e 100644
--- a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_053664();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_053664();
diff --git a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl
index 6de1b56..141a0d9 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_05ce15();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_05ce15();
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 40912ec..3e7d4cb 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_05ce15();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_05ce15();
   return;
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 40912ec..3e7d4cb 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_05ce15();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_05ce15();
   return;
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 1ba7712..2753c76 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_05ce15() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_05ce15();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 10e16a5..496be58 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_05ce15(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_05ce15(texture2d<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_05ce15(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_05ce15(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_05ce15(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_05ce15(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_05ce15(tint_symbol_2);
   return;
 }
 
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 e5dc004..1809502 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_05ce15 "textureStore_05ce15"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_05ce15 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_05ce15
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_05ce15
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_05ce15
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_05ce15
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 6110878..3f0dbc0 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_05ce15();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_05ce15();
diff --git a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl
index 13f0bcd..0ee7352 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_064c7f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_064c7f();
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 13c0c5f..ab2726a 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_064c7f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_064c7f();
   return;
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 13c0c5f..ab2726a 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_064c7f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_064c7f();
   return;
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 2efa3e3..5d4fad4 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_064c7f(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_064c7f(texture2d<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_064c7f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_064c7f(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_064c7f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_064c7f(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_064c7f(tint_symbol_2);
   return;
 }
 
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 e81ac09..234003b 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.spvasm
@@ -1,85 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_064c7f "textureStore_064c7f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_064c7f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_064c7f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_064c7f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_064c7f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_064c7f
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 853f005..adce5f4 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_064c7f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_064c7f();
diff --git a/test/tint/builtins/gen/var/textureStore/068641.wgsl b/test/tint/builtins/gen/var/textureStore/068641.wgsl
index dac710e..fa7503f 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_068641();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_068641();
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 efef8ed..95e0877 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_068641();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_068641();
   return;
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 efef8ed..95e0877 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_068641();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_068641();
   return;
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 78056cf..6a78e02 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_068641() {
-  ivec3 arg_1 = ivec3(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_068641();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 0c0aa54..baba6ae 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_068641(texture3d<uint, access::write> tint_symbol_1) {
+void textureStore_068641(texture3d<uint, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_068641(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_068641(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_068641(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_068641(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_068641(tint_symbol_2);
   return;
 }
 
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 5c3f360..1e1565c 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_068641 "textureStore_068641"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %23 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %21 = OpConstantNull %v4uint
+%textureStore_068641 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_068641
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_068641
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_068641
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_068641
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 6e49bfc..4aaaf3c 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_068641();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_068641();
diff --git a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl
index 7947e24..1d11209 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_06e49c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_06e49c();
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 1518fbe..2b382b6 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_06e49c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_06e49c();
   return;
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 1518fbe..2b382b6 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_06e49c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_06e49c();
   return;
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 e3b351b..8efd611 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_06e49c() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_06e49c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 9c379af..c847b00 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_06e49c(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_06e49c(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_06e49c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_06e49c(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_06e49c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_06e49c(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_06e49c(tint_symbol_2);
   return;
 }
 
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 2460f5e..5b68481 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_06e49c "textureStore_06e49c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-%textureStore_06e49c = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_06e49c = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_06e49c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_06e49c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_06e49c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_06e49c
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = 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 9e0a36f..f750860 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_06e49c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_06e49c();
diff --git a/test/tint/builtins/gen/var/textureStore/07548b.wgsl b/test/tint/builtins/gen/var/textureStore/07548b.wgsl
index 4878a2a..e5c8f57 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_07548b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_07548b();
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 dd69ecf..993895c 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_07548b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_07548b();
   return;
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 dd69ecf..993895c 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_07548b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_07548b();
   return;
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 8fae5fe..a7ad142 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage3D arg_0;
-void textureStore_07548b() {
-  uvec3 arg_1 = uvec3(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_07548b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 179f9868..1f77cac 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_07548b(texture3d<int, access::write> tint_symbol_1) {
+void textureStore_07548b(texture3d<int, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_07548b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_07548b(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_07548b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_07548b(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_07548b(tint_symbol_2);
   return;
 }
 
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 2a78c9c1..eacbaaf 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_07548b "textureStore_07548b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %23 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %21 = OpConstantNull %v4int
+%textureStore_07548b = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_07548b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_07548b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_07548b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_07548b
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 1938ab6..9557450 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_07548b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_07548b();
diff --git a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl
index ae0ba20..6a9b7ad 100644
--- a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_09e4d5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_09e4d5();
diff --git a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.dxc.hlsl
index bdcd850..7d79b1b 100644
--- a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_09e4d5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_09e4d5();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.fxc.hlsl
index bdcd850..7d79b1b 100644
--- a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_09e4d5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_09e4d5();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.glsl
index 27c2425..ec9b65d 100644
--- a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_09e4d5() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_09e4d5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.msl
index e6f2f61..7e616aa 100644
--- a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_09e4d5(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_09e4d5(texture1d<float, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_09e4d5(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_09e4d5(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_09e4d5(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_09e4d5(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_09e4d5(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.spvasm
index c7b561b..7f2a181 100644
--- a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_09e4d5 "textureStore_09e4d5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpTypeFunction %v4float
-%textureStore_09e4d5 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_09e4d5 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-         %29 = OpVectorShuffle %v4float %28 %28 2 1 0 3
-               OpImageWrite %26 %27 %29
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+         %24 = OpVectorShuffle %v4float %23 %23 2 1 0 3
+               OpImageWrite %21 %22 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_09e4d5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_09e4d5
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_09e4d5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_09e4d5
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_09e4d5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.wgsl
index e9c7762..f4f236e 100644
--- a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_09e4d5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_09e4d5();
diff --git a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl
index 5107be6..1cfce77 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0a1a79();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0a1a79();
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 51618da..37f8e98 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0a1a79();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0a1a79();
   return;
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 51618da..37f8e98 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0a1a79();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0a1a79();
   return;
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 26d4cf3..804e24f 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_0a1a79() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_0a1a79();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 532d8c8..4f58dd7 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0a1a79(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_0a1a79(texture2d_array<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_0a1a79(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0a1a79(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0a1a79(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0a1a79(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0a1a79(tint_symbol_2);
   return;
 }
 
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 cedd43d..51e0817 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0a1a79 "textureStore_0a1a79"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_0a1a79 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_0a1a79 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_0a1a79
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_0a1a79
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_0a1a79
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_0a1a79
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 61f1fe9..a4ca147 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0a1a79();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0a1a79();
diff --git a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl
index 0146160..ba53ea2 100644
--- a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl
@@ -44,12 +44,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0ad124();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0ad124();
diff --git a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.dxc.hlsl
index ad59bbe..d39b3f5 100644
--- a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0ad124();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0ad124();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.fxc.hlsl
index ad59bbe..d39b3f5 100644
--- a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0ad124();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0ad124();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.msl
index 17e3981..3ac4bb7 100644
--- a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0ad124(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_0ad124(texture1d<float, access::read_write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_0ad124(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0ad124(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0ad124(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0ad124(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0ad124(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.spvasm
index c5f1090..53dbfbf 100644
--- a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0ad124 "textureStore_0ad124"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_0ad124 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_0ad124 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_0ad124
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_0ad124
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_0ad124
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_0ad124
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_0ad124
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.wgsl
index 9431f5f..1c5807a 100644
--- a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.wgsl
@@ -8,12 +8,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0ad124();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0ad124();
diff --git a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl
index 70b3193..2d15737 100644
--- a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0ade9a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0ade9a();
diff --git a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.dxc.hlsl
index 4beab1d..d3fa785 100644
--- a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0ade9a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0ade9a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.fxc.hlsl
index 4beab1d..d3fa785 100644
--- a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0ade9a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0ade9a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.msl
index f59670c..9b03a72 100644
--- a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0ade9a(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_0ade9a(texture2d_array<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_0ade9a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0ade9a(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0ade9a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0ade9a(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0ade9a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.spvasm
index bba7fef..d760b0e 100644
--- a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.spvasm
@@ -1,96 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0ade9a "textureStore_0ade9a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %17 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpConstantNull %v4uint
+         %22 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_0ade9a = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_0ade9a = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2uint %arg_1
+         %27 = OpCompositeExtract %uint %26 0
+         %28 = OpCompositeExtract %uint %26 1
+         %29 = OpLoad %uint %arg_2
+         %30 = OpCompositeConstruct %v3uint %27 %28 %29
+         %31 = OpLoad %v4uint %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_0ade9a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_0ade9a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_0ade9a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_0ade9a
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_0ade9a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.wgsl
index 9fda58a..d4677aa 100644
--- a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0ade9a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0ade9a();
diff --git a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl
index b5a970c..2a1c6a2 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0af6b5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0af6b5();
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 dbc25bf..68b69a9 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0af6b5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0af6b5();
   return;
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 dbc25bf..68b69a9 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0af6b5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0af6b5();
   return;
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 3942f1d..63c2359 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2D arg_0;
-void textureStore_0af6b5() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_0af6b5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 de6f241..993af33 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0af6b5(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_0af6b5(texture2d<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_0af6b5(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0af6b5(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0af6b5(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0af6b5(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0af6b5(tint_symbol_2);
   return;
 }
 
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 dbf15f2..5982602 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0af6b5 "textureStore_0af6b5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_0af6b5 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_0af6b5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_0af6b5
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_0af6b5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_0af6b5
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 a0000ef..f5fe5ca 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0af6b5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0af6b5();
diff --git a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl
index 2bb72af..0eab8d3 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0c3dff();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0c3dff();
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 9b4e2fc..b2d4ec8 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0c3dff();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0c3dff();
   return;
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 9b4e2fc..b2d4ec8 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0c3dff();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0c3dff();
   return;
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 44b79b0..3c44391 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_0c3dff() {
-  ivec2 arg_1 = ivec2(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_0c3dff();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 d33b405..1711266 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0c3dff(texture2d<uint, access::write> tint_symbol_1) {
+void textureStore_0c3dff(texture2d<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_0c3dff(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0c3dff(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0c3dff(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0c3dff(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0c3dff(tint_symbol_2);
   return;
 }
 
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 fc42068..aa6f7e0 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0c3dff "textureStore_0c3dff"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %21 = OpConstantNull %v4uint
+%textureStore_0c3dff = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_0c3dff
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_0c3dff
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_0c3dff
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_0c3dff
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 4f16e0d..8b0569e 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0c3dff();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0c3dff();
diff --git a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl
index 3a1b0fd9..66ff725 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0cc825();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0cc825();
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 8efbc33..f0cbf2f 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0cc825();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0cc825();
   return;
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 8efbc33..f0cbf2f 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0cc825();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0cc825();
   return;
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 10d2d5f..801034c 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_0cc825() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_0cc825();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 5ef5511..a42b78e 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0cc825(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_0cc825(texture2d_array<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_0cc825(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0cc825(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0cc825(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0cc825(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0cc825(tint_symbol_2);
   return;
 }
 
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 e817aeb..d273585 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0cc825 "textureStore_0cc825"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_0cc825 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_0cc825 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_0cc825
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_0cc825
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_0cc825
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_0cc825
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 7073dc0..9964219 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0cc825();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0cc825();
diff --git a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl
index cdaf7f9..96ef0e4 100644
--- a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0ff97a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0ff97a();
diff --git a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.dxc.hlsl
index 3147c71..e8065dc 100644
--- a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0ff97a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0ff97a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.fxc.hlsl
index 3147c71..e8065dc 100644
--- a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_0ff97a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_0ff97a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.glsl
index 9bbba12..fcc7428 100644
--- a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2DArray arg_0;
-void textureStore_0ff97a() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_0ff97a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.msl
index 259482a..187f181 100644
--- a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_0ff97a(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_0ff97a(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_0ff97a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_0ff97a(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_0ff97a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_0ff97a(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_0ff97a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.spvasm
index d22736f..9302aa1 100644
--- a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.spvasm
@@ -1,93 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_0ff97a "textureStore_0ff97a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
-%textureStore_0ff97a = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_0ff97a = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_0ff97a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_0ff97a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_0ff97a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_0ff97a
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_0ff97a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.wgsl
index 5596219..9dc3917 100644
--- a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0ff97a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_0ff97a();
diff --git a/test/tint/builtins/gen/var/textureStore/101325.wgsl b/test/tint/builtins/gen/var/textureStore/101325.wgsl
index 45dd4f0..c1f9ac2 100644
--- a/test/tint/builtins/gen/var/textureStore/101325.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/101325.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_101325();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_101325();
diff --git a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.dxc.hlsl
index d587b6b..653daeb 100644
--- a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_101325();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_101325();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.fxc.hlsl
index d587b6b..653daeb 100644
--- a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_101325();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_101325();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.glsl
index 6329c30..deaae2f 100644
--- a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_101325() {
-  uvec3 arg_1 = uvec3(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_101325();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.msl
index 4788583..ab9e723 100644
--- a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_101325(texture3d<uint, access::read_write> tint_symbol_1) {
+void textureStore_101325(texture3d<uint, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_101325(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_101325(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_101325(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_101325(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_101325(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.spvasm
index 6797647..626e91f 100644
--- a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_101325 "textureStore_101325"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %11 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %14 = OpConstantNull %v3uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_101325 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint 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 %v3uint %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+         %19 = OpConstantNull %v4uint
+%textureStore_101325 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_101325
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_101325
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_101325
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_101325
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_101325
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.wgsl
index a964ad6..ff84d07 100644
--- a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_101325();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_101325();
diff --git a/test/tint/builtins/gen/var/textureStore/102722.wgsl b/test/tint/builtins/gen/var/textureStore/102722.wgsl
index 9847364..e669e2c 100644
--- a/test/tint/builtins/gen/var/textureStore/102722.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/102722.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_102722();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_102722();
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 38e83d7..fd6ef4b 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_102722();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_102722();
   return;
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 38e83d7..fd6ef4b 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_102722();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_102722();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.glsl
index 45485a0..7ef409e 100644
--- a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_102722() {
-  int arg_1 = 1;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_102722();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 50ee1c6..1dc2bb3 100644
--- a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_102722(texture1d<uint, access::write> tint_symbol_1) {
+void textureStore_102722(texture1d<uint, access::write> tint_symbol) {
   int arg_1 = 1;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_102722(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_102722(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_102722(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_102722(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_102722(tint_symbol_2);
   return;
 }
 
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 243634e..5b0765f 100644
--- a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_102722 "textureStore_102722"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %21 = OpConstantNull %int
+         %13 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %27
+         %19 = OpConstantNull %v4uint
+%textureStore_102722 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %int %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_102722
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_102722
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_102722
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_102722
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 34b69c3..223ab24 100644
--- a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_102722();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_102722();
diff --git a/test/tint/builtins/gen/var/textureStore/145061.wgsl b/test/tint/builtins/gen/var/textureStore/145061.wgsl
index 2308192..199c3c6 100644
--- a/test/tint/builtins/gen/var/textureStore/145061.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/145061.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_145061();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_145061();
diff --git a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.dxc.hlsl
index 763854e..914a0ec 100644
--- a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_145061();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_145061();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.fxc.hlsl
index 763854e..914a0ec 100644
--- a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_145061();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_145061();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.glsl
index 24d0606..87f16cc 100644
--- a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_145061() {
-  uvec2 arg_1 = uvec2(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_145061();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.msl
index 33af584..a5a33c8 100644
--- a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_145061(texture2d<uint, access::read_write> tint_symbol_1) {
+void textureStore_145061(texture2d<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_145061(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_145061(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_145061(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_145061(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_145061(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.spvasm
index 57f6425..841bd4c 100644
--- a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_145061 "textureStore_145061"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_145061 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4uint
+%textureStore_145061 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_145061
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_145061
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_145061
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_145061
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_145061
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.wgsl
index 9b828ab..cf715e7 100644
--- a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_145061();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_145061();
diff --git a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl
index 5324d3b..737dc4a 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_158cf0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_158cf0();
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 2f85a61..b4ac0bd 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_158cf0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_158cf0();
   return;
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 2f85a61..b4ac0bd 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_158cf0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_158cf0();
   return;
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 6741820..75c2947 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_158cf0() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_158cf0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e5a7cc7..af40227 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_158cf0(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_158cf0(texture2d_array<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_158cf0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_158cf0(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_158cf0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_158cf0(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_158cf0(tint_symbol_2);
   return;
 }
 
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 2316c2d..97da9e1 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.spvasm
@@ -1,96 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_158cf0 "textureStore_158cf0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %17 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpConstantNull %v4uint
+         %22 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_158cf0 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_158cf0 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2uint %arg_1
+         %27 = OpCompositeExtract %uint %26 0
+         %28 = OpCompositeExtract %uint %26 1
+         %29 = OpLoad %uint %arg_2
+         %30 = OpCompositeConstruct %v3uint %27 %28 %29
+         %31 = OpLoad %v4uint %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_158cf0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_158cf0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_158cf0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_158cf0
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = 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 cf77fa8..88cb9cb 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_158cf0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_158cf0();
diff --git a/test/tint/builtins/gen/var/textureStore/178e69.wgsl b/test/tint/builtins/gen/var/textureStore/178e69.wgsl
index 2d18195..30c01d9 100644
--- a/test/tint/builtins/gen/var/textureStore/178e69.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/178e69.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_178e69();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_178e69();
diff --git a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.dxc.hlsl
index 0dda9b7..da979ec 100644
--- a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_178e69();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_178e69();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.fxc.hlsl
index 0dda9b7..da979ec 100644
--- a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_178e69();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_178e69();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.glsl
index 07cc4de..7db7ee7 100644
--- a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_178e69() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_178e69();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.msl
index 0591d8c..ce886e6 100644
--- a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_178e69(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_178e69(texture1d<float, access::read_write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_178e69(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_178e69(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_178e69(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_178e69(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_178e69(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.spvasm
index 19109ce..5cc9327 100644
--- a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_178e69 "textureStore_178e69"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpTypeFunction %v4float
-%textureStore_178e69 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_178e69 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-         %29 = OpVectorShuffle %v4float %28 %28 2 1 0 3
-               OpImageWrite %26 %27 %29
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+         %24 = OpVectorShuffle %v4float %23 %23 2 1 0 3
+               OpImageWrite %21 %22 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_178e69
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_178e69
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_178e69
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_178e69
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_178e69
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.wgsl
index fdef937..ca5c64c 100644
--- a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_178e69();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_178e69();
diff --git a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl
index 19d5f8d..063e75c 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1839f2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1839f2();
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 0e071ff..3a4d122 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1839f2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1839f2();
   return;
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 0e071ff..3a4d122 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1839f2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1839f2();
   return;
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 03aa500..0aa0922 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_1839f2() {
-  uvec2 arg_1 = uvec2(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_1839f2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 dfe79c1..2633a0c 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1839f2(texture2d<int, access::write> tint_symbol_1) {
+void textureStore_1839f2(texture2d<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_1839f2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1839f2(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1839f2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1839f2(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1839f2(tint_symbol_2);
   return;
 }
 
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 801a5de..edde7d8 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1839f2 "textureStore_1839f2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %21 = OpConstantNull %v4int
+%textureStore_1839f2 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_1839f2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_1839f2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_1839f2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_1839f2
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 53634ab..bf484b5 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1839f2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1839f2();
diff --git a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl
index 9db6d98..024c2b2 100644
--- a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_195d1b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_195d1b();
diff --git a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.dxc.hlsl
index 50f3585..87ca6649 100644
--- a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_195d1b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_195d1b();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.fxc.hlsl
index 50f3585..87ca6649 100644
--- a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_195d1b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_195d1b();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.glsl
index 574ca74..d7edd08 100644
--- a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image3D arg_0;
-void textureStore_195d1b() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_195d1b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.msl
index 47b260c..f2f6ac7 100644
--- a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_195d1b(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_195d1b(texture3d<float, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_195d1b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_195d1b(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_195d1b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_195d1b(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_195d1b(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.spvasm
index 745f75f..e851fcb 100644
--- a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_195d1b "textureStore_195d1b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_195d1b = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_195d1b = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_195d1b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_195d1b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_195d1b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_195d1b
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_195d1b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.wgsl
index eeb2352..979296302 100644
--- a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_195d1b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_195d1b();
diff --git a/test/tint/builtins/gen/var/textureStore/197637.wgsl b/test/tint/builtins/gen/var/textureStore/197637.wgsl
index 53b283b..2bfd295 100644
--- a/test/tint/builtins/gen/var/textureStore/197637.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/197637.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_197637();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_197637();
diff --git a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.dxc.hlsl
index bcc130d..2a5bfa4 100644
--- a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_197637();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_197637();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.fxc.hlsl
index bcc130d..2a5bfa4 100644
--- a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_197637();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_197637();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.glsl
index 73fc2b8..1b9ed6e 100644
--- a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_197637() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_197637();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.msl
index 7b12d26..2756275 100644
--- a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_197637(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_197637(texture1d<float, access::read_write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_197637(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_197637(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_197637(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_197637(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_197637(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.spvasm
index 0f209da..30eaa6c 100644
--- a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.spvasm
@@ -1,82 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_197637 "textureStore_197637"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_197637 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_197637 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_197637
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_197637
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_197637
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_197637
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_197637
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.wgsl
index 51f0f19..9fdffa3 100644
--- a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_197637();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_197637();
diff --git a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl
index 949e473..15e0d59 100644
--- a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl
@@ -44,12 +44,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1a264d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1a264d();
diff --git a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.dxc.hlsl
index 3b55dc0..4f18e78 100644
--- a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1a264d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1a264d();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.fxc.hlsl
index 3b55dc0..4f18e78 100644
--- a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1a264d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1a264d();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.msl
index ead97da..6377a92 100644
--- a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1a264d(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_1a264d(texture3d<float, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_1a264d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1a264d(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1a264d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1a264d(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1a264d(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.spvasm
index 9fe98f2..3d1d14b 100644
--- a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.spvasm
@@ -1,85 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1a264d "textureStore_1a264d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_1a264d = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_1a264d = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_1a264d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_1a264d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_1a264d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_1a264d
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_1a264d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.wgsl
index efcd479..e76756b 100644
--- a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.wgsl
@@ -8,12 +8,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1a264d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1a264d();
diff --git a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl
index da7b352..943ba39 100644
--- a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1a6c0b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1a6c0b();
diff --git a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.dxc.hlsl
index c580271..e886bdc 100644
--- a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1a6c0b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1a6c0b();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.fxc.hlsl
index c580271..e886bdc 100644
--- a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1a6c0b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1a6c0b();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.msl
index 755a27e..56cfa98 100644
--- a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1a6c0b(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_1a6c0b(texture2d_array<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_1a6c0b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1a6c0b(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1a6c0b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1a6c0b(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1a6c0b(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.spvasm
index c1e3c39..d02fde8 100644
--- a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1a6c0b "textureStore_1a6c0b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %26 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_1a6c0b = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_1a6c0b = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_1a6c0b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_1a6c0b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_1a6c0b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_1a6c0b
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_1a6c0b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.wgsl
index 8e2840a..e7ca9a3 100644
--- a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1a6c0b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1a6c0b();
diff --git a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl
index 2e48645..5ad2abd 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1a7d35();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1a7d35();
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 91e84ee..2587c89 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1a7d35();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1a7d35();
   return;
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 91e84ee..2587c89 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1a7d35();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1a7d35();
   return;
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 0abcb4c..f064fa0 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_1a7d35() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_1a7d35();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 edf7dc3..82c4c14 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1a7d35(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_1a7d35(texture2d_array<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_1a7d35(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1a7d35(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1a7d35(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1a7d35(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1a7d35(tint_symbol_2);
   return;
 }
 
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 c73f137..4b4ad41 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1a7d35 "textureStore_1a7d35"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %26 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_1a7d35 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_1a7d35 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_1a7d35
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_1a7d35
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_1a7d35
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_1a7d35
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 d20a4b0..9bb3b29 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1a7d35();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1a7d35();
diff --git a/test/tint/builtins/gen/var/textureStore/1af236.wgsl b/test/tint/builtins/gen/var/textureStore/1af236.wgsl
index c3e7660..8a8e7c9 100644
--- a/test/tint/builtins/gen/var/textureStore/1af236.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1af236.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1af236();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1af236();
diff --git a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.dxc.hlsl
index 9b714eb..2580e2f 100644
--- a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1af236();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1af236();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.fxc.hlsl
index 9b714eb..2580e2f 100644
--- a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1af236();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1af236();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.glsl
index 210ffc6..740325f 100644
--- a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_1af236() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_1af236();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.msl
index f03db69..eab7c7e 100644
--- a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1af236(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_1af236(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_1af236(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1af236(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1af236(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1af236(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1af236(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.spvasm
index 4db27e1..f043911 100644
--- a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.spvasm
@@ -1,93 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1af236 "textureStore_1af236"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
-%textureStore_1af236 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_1af236 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_1af236
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_1af236
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_1af236
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_1af236
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_1af236
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.wgsl
index a759e32..8202755 100644
--- a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1af236();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1af236();
diff --git a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl
index fd78f2e..575e20f 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1bbd08();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1bbd08();
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 ae02ea0..dc43485 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1bbd08();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1bbd08();
   return;
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 ae02ea0..dc43485 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1bbd08();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1bbd08();
   return;
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 92e2053..0e049d8 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_1bbd08() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_1bbd08();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 25ebb70..7750751 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1bbd08(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_1bbd08(texture3d<float, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_1bbd08(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1bbd08(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1bbd08(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1bbd08(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1bbd08(tint_symbol_2);
   return;
 }
 
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 c67fbe5..3dbd72e 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1bbd08 "textureStore_1bbd08"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_1bbd08 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_1bbd08
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_1bbd08
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_1bbd08
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_1bbd08
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 0f2939e..6a59e92 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1bbd08();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1bbd08();
diff --git a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl
index 22abf5e..6351111 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1c02e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1c02e7();
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 776f31b..fcd0a63 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1c02e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1c02e7();
   return;
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 776f31b..fcd0a63 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1c02e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1c02e7();
   return;
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 82ab7ad..af20180 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_1c02e7() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_1c02e7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 2d3b1a9..e6069aa 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1c02e7(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_1c02e7(texture2d_array<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_1c02e7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1c02e7(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1c02e7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1c02e7(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1c02e7(tint_symbol_2);
   return;
 }
 
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 e73c661..ee9c2d8 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.spvasm
@@ -1,96 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1c02e7 "textureStore_1c02e7"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %17 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_1c02e7 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_1c02e7 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2int %arg_1
+         %27 = OpCompositeExtract %int %26 0
+         %28 = OpCompositeExtract %int %26 1
+         %29 = OpLoad %int %arg_2
+         %30 = OpCompositeConstruct %v3int %27 %28 %29
+         %31 = OpLoad %v4int %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_1c02e7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_1c02e7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_1c02e7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_1c02e7
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = 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 68cd402..690d01d 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1c02e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1c02e7();
diff --git a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl
index ec0e96c..af32f44 100644
--- a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1dc954();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1dc954();
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 a44f797..07bc039 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1dc954();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1dc954();
   return;
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 a44f797..07bc039 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1dc954();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1dc954();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.glsl
index f282af1..b365659 100644
--- a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_1dc954() {
-  uint arg_1 = 1u;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_1dc954();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 7263621..0728678 100644
--- a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1dc954(texture1d<int, access::write> tint_symbol_1) {
+void textureStore_1dc954(texture1d<int, access::write> tint_symbol) {
   uint arg_1 = 1u;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_1dc954(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1dc954(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1dc954(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1dc954(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1dc954(tint_symbol_2);
   return;
 }
 
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 d5eb6a3..b8f694e 100644
--- a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1dc954 "textureStore_1dc954"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %21 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %27
+         %19 = OpConstantNull %v4int
+%textureStore_1dc954 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %uint %arg_1
-         %31 = OpLoad %v4int %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_1dc954
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_1dc954
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_1dc954
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_1dc954
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 7030e86..de782e7 100644
--- a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1dc954();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1dc954();
diff --git a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl
index c9599e6..e61f0c6 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1e20f2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1e20f2();
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 c89af0a..306d174 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1e20f2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1e20f2();
   return;
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 c89af0a..306d174 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1e20f2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1e20f2();
   return;
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 58aabed..f3c00c0 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2D arg_0;
-void textureStore_1e20f2() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_1e20f2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 de3d80e..9b386cc 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1e20f2(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_1e20f2(texture2d<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_1e20f2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1e20f2(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1e20f2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1e20f2(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1e20f2(tint_symbol_2);
   return;
 }
 
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 5f435d0..d4cced5 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1e20f2 "textureStore_1e20f2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_1e20f2 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_1e20f2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_1e20f2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_1e20f2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_1e20f2
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 966a957..6b530d6 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1e20f2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1e20f2();
diff --git a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl
index 27813e1..63dd07a 100644
--- a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl
@@ -45,12 +45,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1e79f0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1e79f0();
diff --git a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.dxc.hlsl
index be25469..89f37ed 100644
--- a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1e79f0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1e79f0();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.fxc.hlsl
index be25469..89f37ed 100644
--- a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1e79f0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1e79f0();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.msl
index 8bd5435..5f76888 100644
--- a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1e79f0(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_1e79f0(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_1e79f0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1e79f0(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1e79f0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1e79f0(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1e79f0(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.spvasm
index 04e02b5..fdb8535 100644
--- a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.spvasm
@@ -1,95 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1e79f0 "textureStore_1e79f0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
-%textureStore_1e79f0 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_1e79f0 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_1e79f0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_1e79f0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_1e79f0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_1e79f0
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_1e79f0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.wgsl
index a7c2f24..3d8586c 100644
--- a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.wgsl
@@ -9,12 +9,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1e79f0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1e79f0();
diff --git a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl
index a276883..0848173 100644
--- a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1e9fbd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1e9fbd();
diff --git a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.dxc.hlsl
index 680220b..40c7009 100644
--- a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1e9fbd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1e9fbd();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.fxc.hlsl
index 680220b..40c7009 100644
--- a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1e9fbd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1e9fbd();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.glsl
index 2462755..4fe71da 100644
--- a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2DArray arg_0;
-void textureStore_1e9fbd() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_1e9fbd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.msl
index babd7d5..79db117 100644
--- a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1e9fbd(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_1e9fbd(texture2d_array<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_1e9fbd(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1e9fbd(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1e9fbd(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1e9fbd(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1e9fbd(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.spvasm
index 94d1f93..bcafa99 100644
--- a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1e9fbd "textureStore_1e9fbd"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_1e9fbd = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_1e9fbd = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_1e9fbd
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_1e9fbd
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_1e9fbd
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_1e9fbd
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_1e9fbd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.wgsl
index 506c25f..c91943d 100644
--- a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1e9fbd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1e9fbd();
diff --git a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl
index a7a3011..3ac29d2 100644
--- a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1efc36();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1efc36();
diff --git a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.dxc.hlsl
index 798ef79..ddd8f75 100644
--- a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1efc36();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1efc36();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.fxc.hlsl
index 798ef79..ddd8f75 100644
--- a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1efc36();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1efc36();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.glsl
index c22de16..19d8b90 100644
--- a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_1efc36() {
-  uvec3 arg_1 = uvec3(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_1efc36();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.msl
index d1e2e8b..3062496 100644
--- a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1efc36(texture3d<uint, access::write> tint_symbol_1) {
+void textureStore_1efc36(texture3d<uint, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_1efc36(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1efc36(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1efc36(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1efc36(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1efc36(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.spvasm
index 09c59f3..d15505c 100644
--- a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1efc36 "textureStore_1efc36"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %11 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %14 = OpConstantNull %v3uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_1efc36 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint 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 %v3uint %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+         %19 = OpConstantNull %v4uint
+%textureStore_1efc36 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_1efc36
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_1efc36
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_1efc36
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_1efc36
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_1efc36
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.wgsl
index cccfb03..d68a91c 100644
--- a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1efc36();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1efc36();
diff --git a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl
index 1e52781..18e6118 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1f1ef8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1f1ef8();
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 3db56b3..9060b0a 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1f1ef8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1f1ef8();
   return;
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 3db56b3..9060b0a 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1f1ef8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1f1ef8();
   return;
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 29a1397..15de442 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_1f1ef8() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_1f1ef8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 1b49bdf..2f986f2 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1f1ef8(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_1f1ef8(texture2d_array<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_1f1ef8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1f1ef8(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1f1ef8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1f1ef8(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1f1ef8(tint_symbol_2);
   return;
 }
 
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 d604a9a..d578fa9 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1f1ef8 "textureStore_1f1ef8"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_1f1ef8 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_1f1ef8 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_1f1ef8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_1f1ef8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_1f1ef8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_1f1ef8
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 8c4b8d0..a9f5b38 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1f1ef8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1f1ef8();
diff --git a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl
index cd7d2d7..a181811 100644
--- a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1fef04();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1fef04();
diff --git a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.dxc.hlsl
index 30b50f5..cee31fb 100644
--- a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1fef04();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1fef04();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.fxc.hlsl
index 30b50f5..cee31fb 100644
--- a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_1fef04();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_1fef04();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.glsl
index 65f6ec7..bf5fe0c 100644
--- a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2D arg_0;
-void textureStore_1fef04() {
-  uint arg_1 = 1u;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_1fef04();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.msl
index fbeb1cf..3f605d4 100644
--- a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_1fef04(texture1d<int, access::read_write> tint_symbol_1) {
+void textureStore_1fef04(texture1d<int, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_1fef04(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_1fef04(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_1fef04(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_1fef04(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_1fef04(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.spvasm
index 9ae7b00..db58739 100644
--- a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_1fef04 "textureStore_1fef04"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %21 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_1fef04 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+         %19 = OpConstantNull %v4int
+%textureStore_1fef04 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %uint %arg_1
-         %31 = OpLoad %v4int %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_1fef04
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_1fef04
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_1fef04
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_1fef04
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_1fef04
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.wgsl
index 349ee8d..11973bd 100644
--- a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1fef04();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_1fef04();
diff --git a/test/tint/builtins/gen/var/textureStore/2046db.wgsl b/test/tint/builtins/gen/var/textureStore/2046db.wgsl
index d5ab6383..a04d6ca 100644
--- a/test/tint/builtins/gen/var/textureStore/2046db.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2046db.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2046db();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2046db();
diff --git a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.dxc.hlsl
index 4dd6fa1..d26cd31 100644
--- a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2046db();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2046db();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.fxc.hlsl
index 4dd6fa1..d26cd31 100644
--- a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2046db();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2046db();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.glsl
index 16b1b92..fbde605 100644
--- a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_2046db() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_2046db();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.msl
index 7f07a2d..ae322ff 100644
--- a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2046db(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_2046db(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_2046db(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2046db(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2046db(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2046db(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2046db(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.spvasm
index 13aa3f0..f92f3e6 100644
--- a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.spvasm
@@ -1,96 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2046db "textureStore_2046db"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-%textureStore_2046db = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_2046db = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_2046db
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_2046db
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_2046db
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_2046db
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_2046db
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.wgsl
index 759e715..0f36a4e 100644
--- a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2046db();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2046db();
diff --git a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl
index 63e54c4..ad93cf9 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_207fdd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_207fdd();
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 a951ffc..7a48fcc 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_207fdd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_207fdd();
   return;
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 a951ffc..7a48fcc 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_207fdd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_207fdd();
   return;
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 0df6840..d955f66 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
-void textureStore_207fdd() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_207fdd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 396bd7c..858a0ab 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_207fdd(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_207fdd(texture3d<float, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_207fdd(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_207fdd(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_207fdd(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_207fdd(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_207fdd(tint_symbol_2);
   return;
 }
 
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 4ac25eb0..a3ecdf7 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_207fdd "textureStore_207fdd"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_207fdd = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_207fdd
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_207fdd
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_207fdd
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_207fdd
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 52d756f..ed8f872 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_207fdd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_207fdd();
diff --git a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl
index dbde2b1..29c7616 100644
--- a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2173fd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2173fd();
diff --git a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.dxc.hlsl
index cf073d7..dc6685f 100644
--- a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2173fd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2173fd();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.fxc.hlsl
index cf073d7..dc6685f 100644
--- a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2173fd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2173fd();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.glsl
index f351abf..ee7999a 100644
--- a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_2173fd() {
-  uint arg_1 = 1u;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_2173fd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.msl
index 10fdad2..bc97489 100644
--- a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2173fd(texture1d<uint, access::read_write> tint_symbol_1) {
+void textureStore_2173fd(texture1d<uint, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_2173fd(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2173fd(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2173fd(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2173fd(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2173fd(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.spvasm
index ff5554c..e80572f 100644
--- a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.spvasm
@@ -1,84 +1,55 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2173fd "textureStore_2173fd"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %12 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %25 = OpConstantNull %v4uint
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_2173fd = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
+         %17 = OpConstantNull %v4uint
+%textureStore_2173fd = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %17
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %uint %arg_1
+         %21 = OpLoad %v4uint %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_2173fd
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_2173fd
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_2173fd
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_2173fd
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_2173fd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.wgsl
index 6f2ce910..8e07256 100644
--- a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2173fd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2173fd();
diff --git a/test/tint/builtins/gen/var/textureStore/22d955.wgsl b/test/tint/builtins/gen/var/textureStore/22d955.wgsl
index 8419c237..25b4f9e 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_22d955();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_22d955();
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 3d19b97..fde9b04 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_22d955();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_22d955();
   return;
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 3d19b97..fde9b04 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_22d955();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_22d955();
   return;
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 6f47c4a..ee7ed7e 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_22d955() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_22d955();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 d83ba28..04415ab 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_22d955(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_22d955(texture2d_array<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_22d955(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_22d955(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_22d955(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_22d955(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_22d955(tint_symbol_2);
   return;
 }
 
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 80c0363..f28204f 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_22d955 "textureStore_22d955"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %26 = OpConstantNull %int
+         %18 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_22d955 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_22d955 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_22d955
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_22d955
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_22d955
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_22d955
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 2bdc27e..97dc4c7 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_22d955();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_22d955();
diff --git a/test/tint/builtins/gen/var/textureStore/22f045.wgsl b/test/tint/builtins/gen/var/textureStore/22f045.wgsl
index 478ee19..73dd32b 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_22f045();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_22f045();
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 9f11aa1..996be4d 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_22f045();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_22f045();
   return;
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 9f11aa1..996be4d 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_22f045();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_22f045();
   return;
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 52c8f72..f40000d 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_22f045() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_22f045();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 8ebc61f..4bcdfb5 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_22f045(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_22f045(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_22f045(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_22f045(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_22f045(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_22f045(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_22f045(tint_symbol_2);
   return;
 }
 
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 c0333ad..c7197a0 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_22f045 "textureStore_22f045"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-%textureStore_22f045 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_22f045 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_22f045
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_22f045
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_22f045
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_22f045
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = 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 10e82ad..05ac6ea 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_22f045();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_22f045();
diff --git a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl
index fc2cab5..7120247 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2383fc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2383fc();
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 2c35c83..238af0d 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2383fc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2383fc();
   return;
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 2c35c83..238af0d 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2383fc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2383fc();
   return;
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 442bede..641d613 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_2383fc() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_2383fc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 0e54c94..96ccd4d 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2383fc(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_2383fc(texture2d_array<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_2383fc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2383fc(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2383fc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2383fc(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2383fc(tint_symbol_2);
   return;
 }
 
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 6d925bf..7c0d5d4 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2383fc "textureStore_2383fc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_2383fc = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_2383fc = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_2383fc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_2383fc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_2383fc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_2383fc
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 c9e1dd2..5b6e083 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2383fc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2383fc();
diff --git a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl
index f3d28a6..64bfcf1 100644
--- a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_24e6b7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_24e6b7();
diff --git a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.dxc.hlsl
index c70cb62..bfcfa18 100644
--- a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_24e6b7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_24e6b7();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.fxc.hlsl
index c70cb62..bfcfa18 100644
--- a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_24e6b7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_24e6b7();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.glsl
index 7c35dbc..99cef60 100644
--- a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage3D arg_0;
-void textureStore_24e6b7() {
-  ivec3 arg_1 = ivec3(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_24e6b7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.msl
index 2d7cc56..77f8aae 100644
--- a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_24e6b7(texture3d<int, access::read_write> tint_symbol_1) {
+void textureStore_24e6b7(texture3d<int, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_24e6b7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_24e6b7(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_24e6b7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_24e6b7(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_24e6b7(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.spvasm
index 4bce298..f614d18 100644
--- a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_24e6b7 "textureStore_24e6b7"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %11 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %14 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_24e6b7 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4int
+%textureStore_24e6b7 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_24e6b7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_24e6b7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_24e6b7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_24e6b7
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_24e6b7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.wgsl
index ad14157..079dabc 100644
--- a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_24e6b7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_24e6b7();
diff --git a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl
index dbe4748..9d392f9 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_258ab0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_258ab0();
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 49a1d74..7bf6c4d 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_258ab0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_258ab0();
   return;
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 49a1d74..7bf6c4d 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_258ab0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_258ab0();
   return;
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 cc024a2..79f4fa1 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_258ab0() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_258ab0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 0c3513a..6e8abee3 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_258ab0(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_258ab0(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_258ab0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_258ab0(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_258ab0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_258ab0(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_258ab0(tint_symbol_2);
   return;
 }
 
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 bcf4eb5..d8cadb2 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_258ab0 "textureStore_258ab0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-%textureStore_258ab0 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_258ab0 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_258ab0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_258ab0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_258ab0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_258ab0
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = 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 caf28b2..72a84b6 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_258ab0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_258ab0();
diff --git a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl
index c40adaa..1b33e8d 100644
--- a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_26a26d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_26a26d();
diff --git a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.dxc.hlsl
index eddf92a..3f1eed3 100644
--- a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_26a26d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_26a26d();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.fxc.hlsl
index eddf92a..3f1eed3 100644
--- a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_26a26d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_26a26d();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.glsl
index 7825cc7..0ba15a6 100644
--- a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_26a26d() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_26a26d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.msl
index 4d9d280..6f26485 100644
--- a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_26a26d(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_26a26d(texture1d<float, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_26a26d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_26a26d(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_26a26d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_26a26d(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_26a26d(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.spvasm
index f98ca4d..2738f88 100644
--- a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.spvasm
@@ -1,82 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_26a26d "textureStore_26a26d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_26a26d = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_26a26d = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_26a26d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_26a26d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_26a26d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_26a26d
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_26a26d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.wgsl
index 31d7863..0bab2f1 100644
--- a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_26a26d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_26a26d();
diff --git a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl
index fe483e5..6200971 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_26bf70();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_26bf70();
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 acabf0a..cd3df88 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_26bf70();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_26bf70();
   return;
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 acabf0a..cd3df88 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_26bf70();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_26bf70();
   return;
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 5c26745..5887f7c 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_26bf70() {
-  ivec2 arg_1 = ivec2(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_26bf70();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 c86dfd5..8a5963f 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_26bf70(texture2d<uint, access::write> tint_symbol_1) {
+void textureStore_26bf70(texture2d<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_26bf70(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_26bf70(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_26bf70(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_26bf70(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_26bf70(tint_symbol_2);
   return;
 }
 
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 94290df..eac1f64 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_26bf70 "textureStore_26bf70"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %21 = OpConstantNull %v4uint
+%textureStore_26bf70 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_26bf70
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_26bf70
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_26bf70
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_26bf70
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 d83fa4d..6a60fa8 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_26bf70();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_26bf70();
diff --git a/test/tint/builtins/gen/var/textureStore/27063a.wgsl b/test/tint/builtins/gen/var/textureStore/27063a.wgsl
index d1c5a55..15236fe 100644
--- a/test/tint/builtins/gen/var/textureStore/27063a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/27063a.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_27063a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_27063a();
diff --git a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.dxc.hlsl
index fe2d534..7ad8a65 100644
--- a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_27063a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_27063a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.fxc.hlsl
index fe2d534..7ad8a65 100644
--- a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_27063a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_27063a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.glsl
index 3c5de25..1396190 100644
--- a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_27063a() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_27063a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.msl
index 54c1bc8..443fc9a 100644
--- a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_27063a(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_27063a(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_27063a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_27063a(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_27063a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_27063a(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_27063a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.spvasm
index 02ff17d..d5e21fb 100644
--- a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.spvasm
@@ -1,98 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_27063a "textureStore_27063a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-%textureStore_27063a = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_27063a = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
-         %42 = OpVectorShuffle %v4float %41 %41 2 1 0 3
-               OpImageWrite %33 %40 %42
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+         %37 = OpVectorShuffle %v4float %36 %36 2 1 0 3
+               OpImageWrite %28 %35 %37
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_27063a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_27063a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_27063a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_27063a
+%compute_main = OpFunction %void None %5
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_27063a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.wgsl
index e2a6f73..7985300 100644
--- a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_27063a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_27063a();
diff --git a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl
index 4507ab2..eb84408 100644
--- a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl
@@ -45,12 +45,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_272f5a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_272f5a();
diff --git a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.dxc.hlsl
index ceb07fc..ab57e3a 100644
--- a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_272f5a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_272f5a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.fxc.hlsl
index ceb07fc..ab57e3a 100644
--- a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_272f5a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_272f5a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.msl
index 692b48e..f01746b 100644
--- a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_272f5a(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_272f5a(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_272f5a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_272f5a(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_272f5a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_272f5a(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_272f5a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.spvasm
index b6c8c42..9f491b6 100644
--- a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_272f5a "textureStore_272f5a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-%textureStore_272f5a = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_272f5a = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_272f5a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_272f5a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_272f5a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_272f5a
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_272f5a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.wgsl
index a7e4349..5f95ca4 100644
--- a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.wgsl
@@ -9,12 +9,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_272f5a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_272f5a();
diff --git a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl
index 4ac98c1..cd5e22a 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2796b4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2796b4();
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 32d8deb..234d804 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2796b4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2796b4();
   return;
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 32d8deb..234d804 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2796b4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2796b4();
   return;
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 cb47485..1576f1b 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2796b4(texture3d<int, access::write> tint_symbol_1) {
+void textureStore_2796b4(texture3d<int, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_2796b4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2796b4(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2796b4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2796b4(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2796b4(tint_symbol_2);
   return;
 }
 
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 e2080b0..9cf2333 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2796b4 "textureStore_2796b4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %11 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %14 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %19 = OpConstantNull %v4int
+%textureStore_2796b4 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_2796b4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_2796b4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_2796b4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_2796b4
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 cceb513..98fb7cb 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2796b4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2796b4();
diff --git a/test/tint/builtins/gen/var/textureStore/285218.wgsl b/test/tint/builtins/gen/var/textureStore/285218.wgsl
index 9976209..25f7aee 100644
--- a/test/tint/builtins/gen/var/textureStore/285218.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/285218.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_285218();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_285218();
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 ab693fa..b8d09dc 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_285218();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_285218();
   return;
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 ab693fa..b8d09dc 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_285218();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_285218();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.glsl
index 36247ab..8c0cdea 100644
--- a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_285218() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_285218();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 f6bf32a..ab68916 100644
--- a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_285218(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_285218(texture1d<float, access::write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_285218(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_285218(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_285218(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_285218(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_285218(tint_symbol_2);
   return;
 }
 
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 b36c2a1..e16e3ca 100644
--- a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_285218 "textureStore_285218"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = 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
+         %19 = OpConstantNull %v4float
+%textureStore_285218 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_285218
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_285218
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_285218
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_285218
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 1685bc2..062ce40 100644
--- a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_285218();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_285218();
diff --git a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl
index 8b7caec..2f0658c 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_28a7ec();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_28a7ec();
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 4b06f40..4238bc3 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_28a7ec();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_28a7ec();
   return;
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 4b06f40..4238bc3 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_28a7ec();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_28a7ec();
   return;
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 f72ef52..d20390f 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_28a7ec() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_28a7ec();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 92ed017..ed6d7b1 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_28a7ec(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_28a7ec(texture2d_array<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_28a7ec(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_28a7ec(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_28a7ec(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_28a7ec(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_28a7ec(tint_symbol_2);
   return;
 }
 
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 be90010..e310ffa 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_28a7ec "textureStore_28a7ec"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_28a7ec = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_28a7ec = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_28a7ec
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_28a7ec
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_28a7ec
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_28a7ec
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 bb74805..93459bc 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_28a7ec();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_28a7ec();
diff --git a/test/tint/builtins/gen/var/textureStore/28e109.wgsl b/test/tint/builtins/gen/var/textureStore/28e109.wgsl
index ed33150..cc561ff 100644
--- a/test/tint/builtins/gen/var/textureStore/28e109.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/28e109.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_28e109();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_28e109();
diff --git a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.dxc.hlsl
index cffdb7c..e7ee607 100644
--- a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_28e109();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_28e109();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.fxc.hlsl
index cffdb7c..e7ee607 100644
--- a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_28e109();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_28e109();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.glsl
index 2abc6c2..2329f74 100644
--- a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_28e109() {
-  ivec2 arg_1 = ivec2(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_28e109();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.msl
index 827d7f4..71a6e3a 100644
--- a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_28e109(texture2d<int, access::read_write> tint_symbol_1) {
+void textureStore_28e109(texture2d<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_28e109(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_28e109(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_28e109(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_28e109(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_28e109(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.spvasm
index 9d45fe5..935659d 100644
--- a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_28e109 "textureStore_28e109"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_28e109 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4int
+%textureStore_28e109 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_28e109
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_28e109
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_28e109
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_28e109
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_28e109
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.wgsl
index 03084a3..f1a19d2 100644
--- a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_28e109();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_28e109();
diff --git a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl
index 51edcbf..1d45757 100644
--- a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2a60c9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2a60c9();
diff --git a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.dxc.hlsl
index ee0e9eb..ac11784 100644
--- a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2a60c9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2a60c9();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.fxc.hlsl
index ee0e9eb..ac11784 100644
--- a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2a60c9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2a60c9();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.glsl
index d0b72aa..050923b 100644
--- a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_2a60c9() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_2a60c9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.msl
index d76e890..dea37dc 100644
--- a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2a60c9(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_2a60c9(texture2d_array<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_2a60c9(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2a60c9(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2a60c9(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2a60c9(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2a60c9(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.spvasm
index 7cd5c73..81b897f 100644
--- a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.spvasm
@@ -1,97 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2a60c9 "textureStore_2a60c9"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %26 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_2a60c9 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_2a60c9 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_2a60c9
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_2a60c9
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_2a60c9
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_2a60c9
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_2a60c9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.wgsl
index b257b65..8943185 100644
--- a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2a60c9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2a60c9();
diff --git a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl
index 7ca810c..ad6b3fd 100644
--- a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2ac6c7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2ac6c7();
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 4659339..0d38fde 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2ac6c7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2ac6c7();
   return;
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 4659339..0d38fde 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2ac6c7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2ac6c7();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.glsl
index 1623b18..600737b 100644
--- a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2D arg_0;
-void textureStore_2ac6c7() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_2ac6c7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 37ba8ed..e8fe862 100644
--- a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2ac6c7(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_2ac6c7(texture1d<float, access::write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_2ac6c7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2ac6c7(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2ac6c7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2ac6c7(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2ac6c7(tint_symbol_2);
   return;
 }
 
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 cd316b5..ca5ea8f 100644
--- a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2ac6c7 "textureStore_2ac6c7"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = 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
+         %19 = OpConstantNull %v4float
+%textureStore_2ac6c7 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_2ac6c7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_2ac6c7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_2ac6c7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_2ac6c7
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 3a9faa7..ad67bcd 100644
--- a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2ac6c7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2ac6c7();
diff --git a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl
index ef24ef3..c3b34e4 100644
--- a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2addd6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2addd6();
diff --git a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.dxc.hlsl
index d4c4b44..b541060 100644
--- a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2addd6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2addd6();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.fxc.hlsl
index d4c4b44..b541060 100644
--- a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2addd6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2addd6();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.glsl
index d96421e..6f50a98 100644
--- a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_2addd6() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_2addd6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.msl
index 6b60d92..cf193aa 100644
--- a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2addd6(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_2addd6(texture2d_array<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_2addd6(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2addd6(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2addd6(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2addd6(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2addd6(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.spvasm
index b2fb061..e28cea5 100644
--- a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.spvasm
@@ -1,95 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2addd6 "textureStore_2addd6"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %17 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpConstantNull %v4uint
+         %22 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_2addd6 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_2addd6 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2uint %arg_1
+         %27 = OpCompositeExtract %uint %26 0
+         %28 = OpCompositeExtract %uint %26 1
+         %29 = OpLoad %uint %arg_2
+         %30 = OpCompositeConstruct %v3uint %27 %28 %29
+         %31 = OpLoad %v4uint %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_2addd6
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_2addd6
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_2addd6
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_2addd6
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_2addd6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.wgsl
index ac328d6..cca4dcc 100644
--- a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2addd6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2addd6();
diff --git a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl
index 7aaabd6..6d5071c 100644
--- a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2c76db();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2c76db();
diff --git a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.dxc.hlsl
index c10fa8b..af18b3d 100644
--- a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2c76db();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2c76db();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.fxc.hlsl
index c10fa8b..af18b3d 100644
--- a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2c76db();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2c76db();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.glsl
index 8fe5391..27615a7 100644
--- a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_2c76db() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_2c76db();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.msl
index bfca793..8cd66bc 100644
--- a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2c76db(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_2c76db(texture2d<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_2c76db(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2c76db(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2c76db(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2c76db(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2c76db(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.spvasm
index 347df9f..886b768 100644
--- a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2c76db "textureStore_2c76db"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_2c76db = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_2c76db = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2c76db
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_2c76db
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_2c76db
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_2c76db
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_2c76db
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.wgsl
index e9f17b0..affaae2 100644
--- a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2c76db();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2c76db();
diff --git a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl
index da9b125..bd14c04 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2d2835();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2d2835();
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 7c94ed0..620f994 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2d2835();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2d2835();
   return;
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 7c94ed0..620f994 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2d2835();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2d2835();
   return;
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 2fe97bd..2a2f6dd 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2d2835(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_2d2835(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_2d2835(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2d2835(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2d2835(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2d2835(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2d2835(tint_symbol_2);
   return;
 }
 
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 f699efe..7fb6d86 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.spvasm
@@ -1,95 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2d2835 "textureStore_2d2835"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
-%textureStore_2d2835 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_2d2835 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_2d2835
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_2d2835
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_2d2835
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_2d2835
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 2e503b1..944f308 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2d2835();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2d2835();
diff --git a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl
index 6872e24..0a8633c 100644
--- a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2e4245();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2e4245();
diff --git a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.dxc.hlsl
index aa180f8..f6827a6 100644
--- a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2e4245();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2e4245();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.fxc.hlsl
index aa180f8..f6827a6 100644
--- a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2e4245();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2e4245();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.glsl
index c030e53..9e3944d 100644
--- a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_2e4245() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_2e4245();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.msl
index bdac7c9..e4ae158 100644
--- a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2e4245(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_2e4245(texture2d<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_2e4245(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2e4245(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2e4245(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2e4245(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2e4245(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.spvasm
index 43fd631..e3304dc 100644
--- a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.spvasm
@@ -1,85 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2e4245 "textureStore_2e4245"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
-%textureStore_2e4245 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %19
-               OpStore %arg_2 %24
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2int %arg_1
-         %30 = OpLoad %v4float %arg_2
-         %31 = OpVectorShuffle %v4float %30 %30 2 1 0 3
-               OpImageWrite %28 %29 %31
+         %21 = OpConstantNull %v4float
+%textureStore_2e4245 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+         %26 = OpVectorShuffle %v4float %25 %25 2 1 0 3
+               OpImageWrite %23 %24 %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_2e4245
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_2e4245
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_2e4245
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_2e4245
+%compute_main = OpFunction %void None %5
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_2e4245
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.wgsl
index c191d5e..8a57c25 100644
--- a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2e4245();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2e4245();
diff --git a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl
index f1d6799..3a6b20d 100644
--- a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl
@@ -44,12 +44,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2e512f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2e512f();
diff --git a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.dxc.hlsl
index ff8aa3d..af184c1 100644
--- a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2e512f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2e512f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.fxc.hlsl
index ff8aa3d..af184c1 100644
--- a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2e512f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2e512f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.msl
index 911336a..9af243c 100644
--- a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2e512f(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_2e512f(texture2d<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_2e512f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2e512f(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2e512f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2e512f(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2e512f(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.spvasm
index 64cfc46..b6013e7 100644
--- a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2e512f "textureStore_2e512f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_2e512f = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_2e512f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2e512f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_2e512f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_2e512f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_2e512f
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_2e512f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.wgsl
index e256f7d..bc81ec8 100644
--- a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.wgsl
@@ -8,12 +8,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2e512f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2e512f();
diff --git a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl
index 1c7ba16..ac48078 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2e6102();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2e6102();
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 79054dd..6250f67 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2e6102();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2e6102();
   return;
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 79054dd..6250f67 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2e6102();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2e6102();
   return;
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 930c3c4..94a5cb1 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_2e6102() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_2e6102();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 b12fdb9..1ad5563 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2e6102(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_2e6102(texture2d<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_2e6102(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2e6102(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2e6102(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2e6102(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2e6102(tint_symbol_2);
   return;
 }
 
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 d17728d..ea0c16d 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2e6102 "textureStore_2e6102"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_2e6102 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2e6102
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_2e6102
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_2e6102
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_2e6102
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 8b5556a..325aeb7 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2e6102();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2e6102();
diff --git a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl
index 22c0a12..ad209d7 100644
--- a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2eb2a4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2eb2a4();
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 04e149f..99ef5f8 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2eb2a4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2eb2a4();
   return;
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 04e149f..99ef5f8 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2eb2a4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2eb2a4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.glsl
index d0a1483..ec5a5f6 100644
--- a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_2eb2a4() {
-  int arg_1 = 1;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_2eb2a4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 d3bd936..f01c105 100644
--- a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2eb2a4(texture1d<uint, access::write> tint_symbol_1) {
+void textureStore_2eb2a4(texture1d<uint, access::write> tint_symbol) {
   int arg_1 = 1;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_2eb2a4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2eb2a4(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2eb2a4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2eb2a4(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2eb2a4(tint_symbol_2);
   return;
 }
 
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 19d931f..cd29f41 100644
--- a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2eb2a4 "textureStore_2eb2a4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %21 = OpConstantNull %int
+         %13 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %27
+         %19 = OpConstantNull %v4uint
+%textureStore_2eb2a4 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %int %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_2eb2a4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_2eb2a4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_2eb2a4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_2eb2a4
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 7323e1d..1cfb116 100644
--- a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2eb2a4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2eb2a4();
diff --git a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl
index ffb3dd2..12a624e 100644
--- a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2ed2a3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2ed2a3();
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 dbc27db..f079f07 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2ed2a3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2ed2a3();
   return;
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 dbc27db..f079f07 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2ed2a3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2ed2a3();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.glsl
index e14074d..dbf3517 100644
--- a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_2ed2a3() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_2ed2a3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e4a9643..cb0d8d9 100644
--- a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2ed2a3(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_2ed2a3(texture1d<float, access::write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_2ed2a3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2ed2a3(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2ed2a3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2ed2a3(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2ed2a3(tint_symbol_2);
   return;
 }
 
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 e07c68c..db00307 100644
--- a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2ed2a3 "textureStore_2ed2a3"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = 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
+         %19 = OpConstantNull %v4float
+%textureStore_2ed2a3 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_2ed2a3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_2ed2a3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_2ed2a3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_2ed2a3
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 39e5cc1..3fcec2f 100644
--- a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2ed2a3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2ed2a3();
diff --git a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl
index c016689..1399fb6 100644
--- a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2f29ea();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2f29ea();
diff --git a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.dxc.hlsl
index 2b1de15..174b467 100644
--- a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2f29ea();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2f29ea();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.fxc.hlsl
index 2b1de15..174b467 100644
--- a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_2f29ea();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_2f29ea();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.glsl
index 205ab55..6ec7d91 100644
--- a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_2f29ea() {
-  ivec2 arg_1 = ivec2(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_2f29ea();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.msl
index f5996a4..44a4e33 100644
--- a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_2f29ea(texture2d<int, access::read_write> tint_symbol_1) {
+void textureStore_2f29ea(texture2d<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_2f29ea(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_2f29ea(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_2f29ea(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_2f29ea(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_2f29ea(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.spvasm
index 1ab7227..169c9db 100644
--- a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_2f29ea "textureStore_2f29ea"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_2f29ea = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4int
+%textureStore_2f29ea = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_2f29ea
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_2f29ea
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_2f29ea
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_2f29ea
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_2f29ea
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.wgsl
index 31ff4a2..aea1048 100644
--- a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2f29ea();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_2f29ea();
diff --git a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl
index ebed6ec..b2564bf 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_30b0b0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_30b0b0();
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 b20db03..51f9fd8 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_30b0b0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_30b0b0();
   return;
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 b20db03..51f9fd8 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_30b0b0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_30b0b0();
   return;
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 6fb6264..4d848cc 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_30b0b0() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_30b0b0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e2d8c74..8edfddc 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_30b0b0(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_30b0b0(texture2d_array<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_30b0b0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_30b0b0(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_30b0b0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_30b0b0(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_30b0b0(tint_symbol_2);
   return;
 }
 
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 e8ee410..601ccad 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_30b0b0 "textureStore_30b0b0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_30b0b0 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_30b0b0 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_30b0b0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_30b0b0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_30b0b0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_30b0b0
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 cc9fc8a..8c32d0b 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_30b0b0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_30b0b0();
diff --git a/test/tint/builtins/gen/var/textureStore/312f27.wgsl b/test/tint/builtins/gen/var/textureStore/312f27.wgsl
index f8e71a7..134fe2b 100644
--- a/test/tint/builtins/gen/var/textureStore/312f27.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/312f27.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_312f27();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_312f27();
diff --git a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.dxc.hlsl
index d1c97a2..49c30ba 100644
--- a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_312f27();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_312f27();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.fxc.hlsl
index d1c97a2..49c30ba 100644
--- a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_312f27();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_312f27();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.glsl
index 111bfa2..ae3d7f2 100644
--- a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2DArray arg_0;
-void textureStore_312f27() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_312f27();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.msl
index 0337e36..133bf65 100644
--- a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_312f27(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_312f27(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_312f27(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_312f27(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_312f27(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_312f27(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_312f27(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.spvasm
index a605648..43fb8aa 100644
--- a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.spvasm
@@ -1,96 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_312f27 "textureStore_312f27"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-%textureStore_312f27 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_312f27 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_312f27
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_312f27
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_312f27
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_312f27
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_312f27
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.wgsl
index 31c6274..b0dbafa 100644
--- a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_312f27();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_312f27();
diff --git a/test/tint/builtins/gen/var/textureStore/31745b.wgsl b/test/tint/builtins/gen/var/textureStore/31745b.wgsl
index 083cc4e..446f711 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_31745b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_31745b();
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 ebe3097..91b5de6 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_31745b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_31745b();
   return;
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 ebe3097..91b5de6 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_31745b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_31745b();
   return;
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 9a436dc..5ffc64b 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_31745b(texture2d<int, access::write> tint_symbol_1) {
+void textureStore_31745b(texture2d<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_31745b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_31745b(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_31745b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_31745b(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_31745b(tint_symbol_2);
   return;
 }
 
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 683bc16..237c6a6 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_31745b "textureStore_31745b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %19 = OpConstantNull %v4int
+%textureStore_31745b = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_31745b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_31745b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_31745b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_31745b
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 edacd7b..c390f67 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_31745b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_31745b();
diff --git a/test/tint/builtins/gen/var/textureStore/319029.wgsl b/test/tint/builtins/gen/var/textureStore/319029.wgsl
index 4b52054..8fb2c49 100644
--- a/test/tint/builtins/gen/var/textureStore/319029.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/319029.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_319029();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_319029();
diff --git a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.dxc.hlsl
index 1c441ae..bc11ea7 100644
--- a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_319029();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_319029();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.fxc.hlsl
index 1c441ae..bc11ea7 100644
--- a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_319029();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_319029();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.glsl
index a40167b..aada46b 100644
--- a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_319029() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_319029();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.msl
index fb8e059..c810a91 100644
--- a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_319029(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_319029(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_319029(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_319029(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_319029(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_319029(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_319029(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.spvasm
index 6b35259..1f1f0df 100644
--- a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.spvasm
@@ -1,95 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_319029 "textureStore_319029"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
-%textureStore_319029 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_319029 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-         %39 = OpVectorShuffle %v4float %38 %38 2 1 0 3
-               OpImageWrite %31 %37 %39
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+         %34 = OpVectorShuffle %v4float %33 %33 2 1 0 3
+               OpImageWrite %26 %32 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_319029
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_319029
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_319029
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_319029
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_319029
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.wgsl
index b25c953..5954232 100644
--- a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_319029();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_319029();
diff --git a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl
index f55809b..03543e9 100644
--- a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_32d3d6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_32d3d6();
diff --git a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.dxc.hlsl
index 3bf0f3a..1d086d6 100644
--- a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_32d3d6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_32d3d6();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.fxc.hlsl
index 3bf0f3a..1d086d6 100644
--- a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_32d3d6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_32d3d6();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.glsl
index b216af9..0887736 100644
--- a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2D arg_0;
-void textureStore_32d3d6() {
-  uint arg_1 = 1u;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_32d3d6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.msl
index 5d2be8d..5113181 100644
--- a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_32d3d6(texture1d<uint, access::read_write> tint_symbol_1) {
+void textureStore_32d3d6(texture1d<uint, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_32d3d6(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_32d3d6(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_32d3d6(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_32d3d6(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_32d3d6(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.spvasm
index d558235..f6bc5df 100644
--- a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.spvasm
@@ -1,84 +1,55 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_32d3d6 "textureStore_32d3d6"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %12 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %25 = OpConstantNull %v4uint
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_32d3d6 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
+         %17 = OpConstantNull %v4uint
+%textureStore_32d3d6 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %17
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %uint %arg_1
+         %21 = OpLoad %v4uint %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_32d3d6
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_32d3d6
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_32d3d6
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_32d3d6
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_32d3d6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.wgsl
index 8f8fa64..e86f5db 100644
--- a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_32d3d6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_32d3d6();
diff --git a/test/tint/builtins/gen/var/textureStore/32f368.wgsl b/test/tint/builtins/gen/var/textureStore/32f368.wgsl
index 4feb340..af9826d 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_32f368();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_32f368();
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 5a1d7cc..64e17d8 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_32f368();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_32f368();
   return;
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 5a1d7cc..64e17d8 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_32f368();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_32f368();
   return;
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 db15720..11c188d 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_32f368() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_32f368();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 6f84388..8ba0f44 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_32f368(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_32f368(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_32f368(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_32f368(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_32f368(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_32f368(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_32f368(tint_symbol_2);
   return;
 }
 
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 2bed16d..9418d5b 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_32f368 "textureStore_32f368"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
-%textureStore_32f368 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_32f368 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_32f368
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_32f368
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_32f368
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_32f368
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 d36096e..4266e76 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_32f368();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_32f368();
diff --git a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl
index 920a2c4..e4fd0ee 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_330b7c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_330b7c();
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 51afd98..e7db39c 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_330b7c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_330b7c();
   return;
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 51afd98..e7db39c 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_330b7c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_330b7c();
   return;
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 33ada5f..0f5586f 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_330b7c() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_330b7c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 fd47878..1b988a2 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_330b7c(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_330b7c(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_330b7c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_330b7c(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_330b7c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_330b7c(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_330b7c(tint_symbol_2);
   return;
 }
 
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 ee90256..238a72a 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_330b7c "textureStore_330b7c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
-%textureStore_330b7c = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_330b7c = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_330b7c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_330b7c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_330b7c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_330b7c
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 dabad78..8a842a7 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_330b7c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_330b7c();
diff --git a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl
index c8c06f7..e9bcd13 100644
--- a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3310d3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3310d3();
diff --git a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.dxc.hlsl
index c0bcd6d..eb23b1b 100644
--- a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3310d3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3310d3();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.fxc.hlsl
index c0bcd6d..eb23b1b 100644
--- a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3310d3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3310d3();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.glsl
index 64dfcf5..d779c04 100644
--- a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_3310d3() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_3310d3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.msl
index 3b040be..66bdc2d 100644
--- a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3310d3(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_3310d3(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_3310d3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3310d3(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3310d3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3310d3(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3310d3(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.spvasm
index 4ed9e78..b65e253 100644
--- a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.spvasm
@@ -1,93 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3310d3 "textureStore_3310d3"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
-%textureStore_3310d3 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_3310d3 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_3310d3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_3310d3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_3310d3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_3310d3
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_3310d3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.wgsl
index 7b34616..3f4602a 100644
--- a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3310d3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3310d3();
diff --git a/test/tint/builtins/gen/var/textureStore/331aee.wgsl b/test/tint/builtins/gen/var/textureStore/331aee.wgsl
index 3c792d0..6f82a28 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_331aee();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_331aee();
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 092f4d0..25e354d 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_331aee();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_331aee();
   return;
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 092f4d0..25e354d 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_331aee();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_331aee();
   return;
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 8c8ab89..adb5a74 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image3D arg_0;
-void textureStore_331aee() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_331aee();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 0b7bcaa..394c42b 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_331aee(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_331aee(texture3d<float, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_331aee(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_331aee(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_331aee(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_331aee(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_331aee(tint_symbol_2);
   return;
 }
 
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 a06250e..dd33110 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_331aee "textureStore_331aee"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_331aee = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_331aee
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_331aee
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_331aee
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_331aee
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 115bdee..c87fb2d 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_331aee();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_331aee();
diff --git a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl
index 778bcfa..4b6267a 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_33cec0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_33cec0();
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 e711e08..8d202ef 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_33cec0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_33cec0();
   return;
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 e711e08..8d202ef 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_33cec0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_33cec0();
   return;
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 9b85e73..4995fa0 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_33cec0() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_33cec0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 94eda71..5cc5c87 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_33cec0(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_33cec0(texture2d_array<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_33cec0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_33cec0(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_33cec0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_33cec0(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_33cec0(tint_symbol_2);
   return;
 }
 
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 2fe8ee7..440b2b8 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_33cec0 "textureStore_33cec0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_33cec0 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_33cec0 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_33cec0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_33cec0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_33cec0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_33cec0
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 e1f07b1..7ccdd81 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_33cec0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_33cec0();
diff --git a/test/tint/builtins/gen/var/textureStore/345332.wgsl b/test/tint/builtins/gen/var/textureStore/345332.wgsl
index 3ad4ab9..40f4683 100644
--- a/test/tint/builtins/gen/var/textureStore/345332.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/345332.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_345332();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_345332();
diff --git a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.dxc.hlsl
index d2ede69..62b8bcd 100644
--- a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_345332();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_345332();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.fxc.hlsl
index d2ede69..62b8bcd 100644
--- a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_345332();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_345332();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.glsl
index f9dfc63..d5dc7c4 100644
--- a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_345332() {
-  uvec2 arg_1 = uvec2(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_345332();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.msl
index 0790395..a1c0e1b 100644
--- a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_345332(texture2d<uint, access::read_write> tint_symbol_1) {
+void textureStore_345332(texture2d<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_345332(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_345332(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_345332(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_345332(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_345332(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.spvasm
index 1c844f7..8edc5e8 100644
--- a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_345332 "textureStore_345332"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_345332 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4uint
+%textureStore_345332 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_345332
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_345332
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_345332
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_345332
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_345332
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.wgsl
index 1b11222..274ad42 100644
--- a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_345332();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_345332();
diff --git a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl
index 613a380..da044ef 100644
--- a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl
@@ -45,12 +45,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_37eeef();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_37eeef();
diff --git a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.dxc.hlsl
index 07f8a4b..8181a50 100644
--- a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_37eeef();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_37eeef();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.fxc.hlsl
index 07f8a4b..8181a50 100644
--- a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_37eeef();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_37eeef();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.msl
index c27eade..dfeab7e 100644
--- a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_37eeef(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_37eeef(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_37eeef(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_37eeef(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_37eeef(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_37eeef(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_37eeef(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.spvasm
index f6df02f..941cfd9 100644
--- a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.spvasm
@@ -1,98 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_37eeef "textureStore_37eeef"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-%textureStore_37eeef = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_37eeef = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_37eeef
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_37eeef
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_37eeef
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_37eeef
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_37eeef
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.wgsl
index 4dc58f9..9c0df8a 100644
--- a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.wgsl
@@ -9,12 +9,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_37eeef();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_37eeef();
diff --git a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl
index f839b9e..4520e15 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_37ffd4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_37ffd4();
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 216b9f1..c0ddf9e 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_37ffd4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_37ffd4();
   return;
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 216b9f1..c0ddf9e 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_37ffd4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_37ffd4();
   return;
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 f395ef5..012db22 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_37ffd4() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_37ffd4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 36e93dc..fca76ef 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_37ffd4(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_37ffd4(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_37ffd4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_37ffd4(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_37ffd4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_37ffd4(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_37ffd4(tint_symbol_2);
   return;
 }
 
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 6c02239..f04e1c4 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_37ffd4 "textureStore_37ffd4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-%textureStore_37ffd4 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_37ffd4 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_37ffd4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_37ffd4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_37ffd4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_37ffd4
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = 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 317fe2c..d4711cf 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_37ffd4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_37ffd4();
diff --git a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl
index 0957eb8..26c0cdb 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_38e8d7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_38e8d7();
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 7e0c300..a489b65 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_38e8d7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_38e8d7();
   return;
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 7e0c300..a489b65 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_38e8d7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_38e8d7();
   return;
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 f5b2d7e..5f523b1 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_38e8d7() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_38e8d7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 98b3084..f64ac07 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_38e8d7(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_38e8d7(texture2d_array<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_38e8d7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_38e8d7(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_38e8d7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_38e8d7(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_38e8d7(tint_symbol_2);
   return;
 }
 
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 0125a43..824430e 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_38e8d7 "textureStore_38e8d7"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %26 = OpConstantNull %int
+         %18 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_38e8d7 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_38e8d7 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_38e8d7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_38e8d7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_38e8d7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_38e8d7
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 48f79ff..a04a05d 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_38e8d7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_38e8d7();
diff --git a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl
index f9f63df..8c40e87 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3a52ac();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3a52ac();
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 76865dd..aba8012 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3a52ac();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3a52ac();
   return;
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 76865dd..aba8012 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3a52ac();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3a52ac();
   return;
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 28c118b..4de6b65 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_3a52ac() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_3a52ac();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 65f36a5..a00661f 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3a52ac(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_3a52ac(texture2d_array<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_3a52ac(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3a52ac(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3a52ac(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3a52ac(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3a52ac(tint_symbol_2);
   return;
 }
 
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 1496de0..4262297 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.spvasm
@@ -1,96 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3a52ac "textureStore_3a52ac"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %17 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_3a52ac = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_3a52ac = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2int %arg_1
+         %27 = OpCompositeExtract %int %26 0
+         %28 = OpCompositeExtract %int %26 1
+         %29 = OpLoad %int %arg_2
+         %30 = OpCompositeConstruct %v3int %27 %28 %29
+         %31 = OpLoad %v4int %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_3a52ac
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_3a52ac
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_3a52ac
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_3a52ac
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = 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 7b6336a..20822e4 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3a52ac();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3a52ac();
diff --git a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl
index cffcf11..cff9952 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3bb7a1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3bb7a1();
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 4ce140b..53f92e2 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3bb7a1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3bb7a1();
   return;
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 4ce140b..53f92e2 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3bb7a1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3bb7a1();
   return;
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 2f0933a..28565e8 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_3bb7a1() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_3bb7a1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 57831d8..fec5917 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3bb7a1(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_3bb7a1(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_3bb7a1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3bb7a1(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3bb7a1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3bb7a1(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3bb7a1(tint_symbol_2);
   return;
 }
 
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 da8e7d9..57e360a 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3bb7a1 "textureStore_3bb7a1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
-%textureStore_3bb7a1 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_3bb7a1 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_3bb7a1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_3bb7a1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_3bb7a1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_3bb7a1
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 75a3552..970fddb 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3bb7a1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3bb7a1();
diff --git a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl
index 779ba6b..c8882ba 100644
--- a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3bec15();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3bec15();
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 e5c9a49..b35abaa 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3bec15();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3bec15();
   return;
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 e5c9a49..b35abaa 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3bec15();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3bec15();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.glsl
index ee606b0..6759b40 100644
--- a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_3bec15() {
-  int arg_1 = 1;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_3bec15();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 ae5ae1c..741399f 100644
--- a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3bec15(texture1d<uint, access::write> tint_symbol_1) {
+void textureStore_3bec15(texture1d<uint, access::write> tint_symbol) {
   int arg_1 = 1;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_3bec15(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3bec15(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3bec15(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3bec15(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3bec15(tint_symbol_2);
   return;
 }
 
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 65e8ffe..66bde91 100644
--- a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3bec15 "textureStore_3bec15"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %21 = OpConstantNull %int
+         %13 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %27
+         %19 = OpConstantNull %v4uint
+%textureStore_3bec15 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %int %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_3bec15
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_3bec15
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_3bec15
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_3bec15
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 02803e9..e17a7a6 100644
--- a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3bec15();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3bec15();
diff --git a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl
index c75cd26..ae071fa 100644
--- a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3c1937();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3c1937();
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 478d996..2b3ca9a 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3c1937();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3c1937();
   return;
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 478d996..2b3ca9a 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3c1937();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3c1937();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.glsl
index d2020dc..21c4bae 100644
--- a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_3c1937() {
-  uint arg_1 = 1u;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_3c1937();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 87b1a47..3debfad 100644
--- a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3c1937(texture1d<uint, access::write> tint_symbol_1) {
+void textureStore_3c1937(texture1d<uint, access::write> tint_symbol) {
   uint arg_1 = 1u;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_3c1937(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3c1937(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3c1937(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3c1937(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3c1937(tint_symbol_2);
   return;
 }
 
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 1633d5f..842db53 100644
--- a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3c1937 "textureStore_3c1937"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %12 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %25
+         %17 = OpConstantNull %v4uint
+%textureStore_3c1937 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %17
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %uint %arg_1
+         %21 = OpLoad %v4uint %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_3c1937
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_3c1937
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_3c1937
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_3c1937
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 1bb71e7..6715159 100644
--- a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3c1937();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3c1937();
diff --git a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl
index 1c02451..48c7b2f 100644
--- a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3d1ebe();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3d1ebe();
diff --git a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.dxc.hlsl
index ef00532..d139c53 100644
--- a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3d1ebe();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3d1ebe();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.fxc.hlsl
index ef00532..d139c53 100644
--- a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3d1ebe();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3d1ebe();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.glsl
index c741c99..8192c2b 100644
--- a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2D arg_0;
-void textureStore_3d1ebe() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_3d1ebe();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.msl
index 10b34f6..3f21248 100644
--- a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3d1ebe(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_3d1ebe(texture2d<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_3d1ebe(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3d1ebe(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3d1ebe(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3d1ebe(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3d1ebe(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.spvasm
index 14edceb..586b243 100644
--- a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3d1ebe "textureStore_3d1ebe"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_3d1ebe = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_3d1ebe = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_3d1ebe
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_3d1ebe
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_3d1ebe
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_3d1ebe
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_3d1ebe
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.wgsl
index ff25edb..bcad623 100644
--- a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3d1ebe();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3d1ebe();
diff --git a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl
index fab8379..5ad212f 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3d6f01();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3d6f01();
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 49ed90f..ba10551 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3d6f01();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3d6f01();
   return;
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 49ed90f..ba10551 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3d6f01();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3d6f01();
   return;
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 10a8e5d..8c47f1a 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3d6f01(texture1d<int, access::write> tint_symbol_1) {
+void textureStore_3d6f01(texture1d<int, access::write> tint_symbol) {
   uint arg_1 = 1u;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_3d6f01(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3d6f01(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3d6f01(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3d6f01(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3d6f01(tint_symbol_2);
   return;
 }
 
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 a16a364..9f503f9 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3d6f01 "textureStore_3d6f01"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %21 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %27
+         %19 = OpConstantNull %v4int
+%textureStore_3d6f01 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %uint %arg_1
-         %31 = OpLoad %v4int %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_3d6f01
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_3d6f01
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_3d6f01
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_3d6f01
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 a59f7a1..cea3553 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3d6f01();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3d6f01();
diff --git a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl
index ee1f0c0..ff22652 100644
--- a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3d96a4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3d96a4();
diff --git a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.dxc.hlsl
index a7e5bf4..71790e1 100644
--- a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3d96a4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3d96a4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.fxc.hlsl
index a7e5bf4..71790e1 100644
--- a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3d96a4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3d96a4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.glsl
index a6a3749..aa52c93 100644
--- a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_3d96a4() {
-  uvec3 arg_1 = uvec3(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_3d96a4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.msl
index 05db1a0..5621a58 100644
--- a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3d96a4(texture3d<int, access::read_write> tint_symbol_1) {
+void textureStore_3d96a4(texture3d<int, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_3d96a4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3d96a4(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3d96a4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3d96a4(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3d96a4(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.spvasm
index 7cd6419..df00b3a 100644
--- a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3d96a4 "textureStore_3d96a4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %23 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_3d96a4 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4int
+%textureStore_3d96a4 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_3d96a4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_3d96a4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_3d96a4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_3d96a4
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_3d96a4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.wgsl
index 649b558..e4466ec 100644
--- a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3d96a4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3d96a4();
diff --git a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl
index 10747e9..fc3bc57 100644
--- a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3e0dc4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3e0dc4();
diff --git a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.dxc.hlsl
index ae27d1d..82bb1f2 100644
--- a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3e0dc4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3e0dc4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.fxc.hlsl
index ae27d1d..82bb1f2 100644
--- a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3e0dc4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3e0dc4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.msl
index 529439d..fae5157 100644
--- a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3e0dc4(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_3e0dc4(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_3e0dc4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3e0dc4(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3e0dc4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3e0dc4(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3e0dc4(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.spvasm
index 1fe0f56..64e99e1 100644
--- a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3e0dc4 "textureStore_3e0dc4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-%textureStore_3e0dc4 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_3e0dc4 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_3e0dc4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_3e0dc4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_3e0dc4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_3e0dc4
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_3e0dc4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.wgsl
index 77fb05d..bd7aa04 100644
--- a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3e0dc4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3e0dc4();
diff --git a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl
index f0c9950..c885331 100644
--- a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3f61ca();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3f61ca();
diff --git a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.dxc.hlsl
index 0fadd68..33bf12e 100644
--- a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3f61ca();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3f61ca();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.fxc.hlsl
index 0fadd68..33bf12e 100644
--- a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3f61ca();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3f61ca();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.glsl
index c36dc65..38f3b89 100644
--- a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
-void textureStore_3f61ca() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_3f61ca();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.msl
index 6321254..eddfa2a 100644
--- a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3f61ca(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_3f61ca(texture3d<float, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_3f61ca(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3f61ca(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3f61ca(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3f61ca(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3f61ca(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.spvasm
index fa51ad0..a8a3e45 100644
--- a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3f61ca "textureStore_3f61ca"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_3f61ca = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_3f61ca = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_3f61ca
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_3f61ca
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_3f61ca
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_3f61ca
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_3f61ca
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.wgsl
index 89c39b5..c5c06a6 100644
--- a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3f61ca();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3f61ca();
diff --git a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl
index b07461c..4a9e083 100644
--- a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3fb31f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3fb31f();
diff --git a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.dxc.hlsl
index 27691ee..c06a3d2 100644
--- a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3fb31f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3fb31f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.fxc.hlsl
index 27691ee..c06a3d2 100644
--- a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_3fb31f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_3fb31f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.msl
index cf4db1b..f568012 100644
--- a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_3fb31f(texture3d<uint, access::write> tint_symbol_1) {
+void textureStore_3fb31f(texture3d<uint, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_3fb31f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_3fb31f(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_3fb31f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_3fb31f(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_3fb31f(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.spvasm
index a52e745..26d72aa 100644
--- a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_3fb31f "textureStore_3fb31f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %11 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %14 = OpConstantNull %v3uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_3fb31f = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint 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 %v3uint %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+         %19 = OpConstantNull %v4uint
+%textureStore_3fb31f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_3fb31f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_3fb31f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_3fb31f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_3fb31f
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_3fb31f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.wgsl
index 34d9f7c..9a439cd 100644
--- a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3fb31f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_3fb31f();
diff --git a/test/tint/builtins/gen/var/textureStore/40c455.wgsl b/test/tint/builtins/gen/var/textureStore/40c455.wgsl
index cc9778d..036febc 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_40c455();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_40c455();
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 4bc30ac..7f148c4 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_40c455();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_40c455();
   return;
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 4bc30ac..7f148c4 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_40c455();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_40c455();
   return;
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 7052d23..86816a2 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_40c455() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_40c455();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e724e08..36ddaee 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_40c455(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_40c455(texture2d<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_40c455(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_40c455(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_40c455(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_40c455(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_40c455(tint_symbol_2);
   return;
 }
 
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 0ddfe09..0d43add 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_40c455 "textureStore_40c455"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_40c455 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_40c455
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_40c455
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_40c455
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_40c455
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 0865958..ccacb51 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_40c455();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_40c455();
diff --git a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl
index c588cd0..8079b6c 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4288fc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4288fc();
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 b24d4dd..ec94467 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4288fc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4288fc();
   return;
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 b24d4dd..ec94467 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4288fc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4288fc();
   return;
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 af4f43a..e88ec71 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image3D arg_0;
-void textureStore_4288fc() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_4288fc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 cb21571..67a6abe 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4288fc(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_4288fc(texture3d<float, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_4288fc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4288fc(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4288fc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4288fc(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4288fc(tint_symbol_2);
   return;
 }
 
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 0bde16b..8702cce 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4288fc "textureStore_4288fc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_4288fc = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_4288fc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_4288fc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_4288fc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_4288fc
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 52e3aeb..1395c21 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4288fc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4288fc();
diff --git a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl
index d3eb0a2..395e427 100644
--- a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl
@@ -45,12 +45,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_43d1df();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_43d1df();
diff --git a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.dxc.hlsl
index 89fc4f0..0e8f2ef 100644
--- a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_43d1df();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_43d1df();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.fxc.hlsl
index 89fc4f0..0e8f2ef 100644
--- a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_43d1df();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_43d1df();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.msl
index d7e7995..7ef042a 100644
--- a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_43d1df(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_43d1df(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_43d1df(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_43d1df(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_43d1df(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_43d1df(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_43d1df(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.spvasm
index 11911a8..8c09dcc 100644
--- a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_43d1df "textureStore_43d1df"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
-%textureStore_43d1df = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_43d1df = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_43d1df
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_43d1df
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_43d1df
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_43d1df
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_43d1df
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.wgsl
index e70b859..bc6623a 100644
--- a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.wgsl
@@ -9,12 +9,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_43d1df();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_43d1df();
diff --git a/test/tint/builtins/gen/var/textureStore/441222.wgsl b/test/tint/builtins/gen/var/textureStore/441222.wgsl
index c8f7aec..42b1959 100644
--- a/test/tint/builtins/gen/var/textureStore/441222.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/441222.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_441222();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_441222();
diff --git a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.dxc.hlsl
index 85b35e8..6fc2752 100644
--- a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_441222();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_441222();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.fxc.hlsl
index 85b35e8..6fc2752 100644
--- a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_441222();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_441222();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.glsl
index 2985ae7..6a9fa69 100644
--- a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_441222() {
-  uvec2 arg_1 = uvec2(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_441222();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.msl
index aaa8b3f..e8c6ded 100644
--- a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_441222(texture2d<int, access::read_write> tint_symbol_1) {
+void textureStore_441222(texture2d<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_441222(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_441222(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_441222(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_441222(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_441222(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.spvasm
index 728f930..bb0247f 100644
--- a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_441222 "textureStore_441222"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_441222 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4int
+%textureStore_441222 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_441222
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_441222
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_441222
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_441222
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_441222
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.wgsl
index dd60840..3824e4f 100644
--- a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_441222();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_441222();
diff --git a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl
index 8945155..a2e7c74 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_441ba8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_441ba8();
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 d76c9f3..89c4c88 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_441ba8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_441ba8();
   return;
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 d76c9f3..89c4c88 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_441ba8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_441ba8();
   return;
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 d399e9e..b5291a2 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_441ba8() {
-  ivec3 arg_1 = ivec3(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_441ba8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 2315354..86e090c 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_441ba8(texture3d<uint, access::write> tint_symbol_1) {
+void textureStore_441ba8(texture3d<uint, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_441ba8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_441ba8(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_441ba8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_441ba8(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_441ba8(tint_symbol_2);
   return;
 }
 
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 5757914..5e410bf 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_441ba8 "textureStore_441ba8"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %23 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %21 = OpConstantNull %v4uint
+%textureStore_441ba8 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_441ba8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_441ba8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_441ba8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_441ba8
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 319ac4a..1777c94 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_441ba8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_441ba8();
diff --git a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl
index 584346f..222a6b3 100644
--- a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4483e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4483e7();
diff --git a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.dxc.hlsl
index a7c9d9b..659f3cc 100644
--- a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4483e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4483e7();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.fxc.hlsl
index a7c9d9b..659f3cc 100644
--- a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4483e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4483e7();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.glsl
index 3c89a01..1853a65 100644
--- a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_4483e7() {
-  uint arg_1 = 1u;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_4483e7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.msl
index e9c717e..a22166f 100644
--- a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4483e7(texture1d<int, access::read_write> tint_symbol_1) {
+void textureStore_4483e7(texture1d<int, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_4483e7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4483e7(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4483e7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4483e7(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4483e7(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.spvasm
index af672d7..2f83e62 100644
--- a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4483e7 "textureStore_4483e7"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %21 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_4483e7 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+         %19 = OpConstantNull %v4int
+%textureStore_4483e7 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %uint %arg_1
-         %31 = OpLoad %v4int %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_4483e7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_4483e7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_4483e7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_4483e7
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_4483e7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.wgsl
index 0d8513c..034fd51 100644
--- a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4483e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4483e7();
diff --git a/test/tint/builtins/gen/var/textureStore/44b372.wgsl b/test/tint/builtins/gen/var/textureStore/44b372.wgsl
index 2137ebf..3c096b8 100644
--- a/test/tint/builtins/gen/var/textureStore/44b372.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/44b372.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_44b372();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_44b372();
diff --git a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.dxc.hlsl
index 0f579f1..90a83d4 100644
--- a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_44b372();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_44b372();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.fxc.hlsl
index 0f579f1..90a83d4 100644
--- a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_44b372();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_44b372();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.glsl
index bdbc26b..b3a4978 100644
--- a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_44b372() {
-  ivec2 arg_1 = ivec2(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_44b372();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.msl
index 2950988..0e2056a 100644
--- a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_44b372(texture2d<int, access::read_write> tint_symbol_1) {
+void textureStore_44b372(texture2d<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_44b372(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_44b372(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_44b372(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_44b372(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_44b372(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.spvasm
index 7a97cae..da6f919 100644
--- a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_44b372 "textureStore_44b372"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_44b372 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4int
+%textureStore_44b372 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_44b372
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_44b372
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_44b372
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_44b372
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_44b372
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.wgsl
index aceaa69..1c36fe9 100644
--- a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_44b372();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_44b372();
diff --git a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl
index b35bfa4..967c2b7 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_44daa7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_44daa7();
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 11e9bf7..6aa6390 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_44daa7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_44daa7();
   return;
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 11e9bf7..6aa6390 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_44daa7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_44daa7();
   return;
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 688c903..4a6c122 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_44daa7() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_44daa7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 b366375..b167503 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_44daa7(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_44daa7(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_44daa7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_44daa7(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_44daa7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_44daa7(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_44daa7(tint_symbol_2);
   return;
 }
 
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 7bc33b4..3a0078b 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_44daa7 "textureStore_44daa7"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-%textureStore_44daa7 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_44daa7 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_44daa7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_44daa7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_44daa7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_44daa7
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = 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 c76b503..b344232 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_44daa7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_44daa7();
diff --git a/test/tint/builtins/gen/var/textureStore/473ead.wgsl b/test/tint/builtins/gen/var/textureStore/473ead.wgsl
index 8b11404..f76a295 100644
--- a/test/tint/builtins/gen/var/textureStore/473ead.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/473ead.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_473ead();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_473ead();
diff --git a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.dxc.hlsl
index 03d3fc2..3fcfdd8 100644
--- a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_473ead();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_473ead();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.fxc.hlsl
index 03d3fc2..3fcfdd8 100644
--- a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_473ead();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_473ead();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.msl
index ab4c502..7610fde 100644
--- a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_473ead(texture3d<uint, access::read_write> tint_symbol_1) {
+void textureStore_473ead(texture3d<uint, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_473ead(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_473ead(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_473ead(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_473ead(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_473ead(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.spvasm
index 9bf6ed8..60e3cb5 100644
--- a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_473ead "textureStore_473ead"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %11 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %14 = OpConstantNull %v3uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_473ead = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint 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 %v3uint %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+         %19 = OpConstantNull %v4uint
+%textureStore_473ead = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_473ead
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_473ead
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_473ead
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_473ead
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_473ead
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.wgsl
index e1b8df0..65a1d8a 100644
--- a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_473ead();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_473ead();
diff --git a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl
index f5f9ad1..a222eee 100644
--- a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_47bd70();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_47bd70();
diff --git a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.dxc.hlsl
index e355916..bc4646b 100644
--- a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_47bd70();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_47bd70();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.fxc.hlsl
index e355916..bc4646b 100644
--- a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_47bd70();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_47bd70();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.glsl
index 2ec393f..3079523 100644
--- a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_47bd70() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_47bd70();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.msl
index 0b663c3..f9f3566 100644
--- a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_47bd70(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_47bd70(texture2d<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_47bd70(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_47bd70(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_47bd70(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_47bd70(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_47bd70(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.spvasm
index 84ea216..3e21d86 100644
--- a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_47bd70 "textureStore_47bd70"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_47bd70 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_47bd70 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_47bd70
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_47bd70
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_47bd70
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_47bd70
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_47bd70
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.wgsl
index 08ba746..c1f575b 100644
--- a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_47bd70();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_47bd70();
diff --git a/test/tint/builtins/gen/var/textureStore/486500.wgsl b/test/tint/builtins/gen/var/textureStore/486500.wgsl
index b2bf265..ee45b5e 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_486500();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_486500();
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 be3cd2e..c12e2dd 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_486500();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_486500();
   return;
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 be3cd2e..c12e2dd 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_486500();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_486500();
   return;
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 ffa1bbd..700fdb8 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_486500() {
-  uvec3 arg_1 = uvec3(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_486500();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 c0a151f..139a0cf 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_486500(texture3d<int, access::write> tint_symbol_1) {
+void textureStore_486500(texture3d<int, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_486500(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_486500(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_486500(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_486500(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_486500(tint_symbol_2);
   return;
 }
 
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 cdc1231..6547c20 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_486500 "textureStore_486500"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %23 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %21 = OpConstantNull %v4int
+%textureStore_486500 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_486500
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_486500
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_486500
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_486500
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 bea8b44..ec363db 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_486500();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_486500();
diff --git a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl
index 0b68277..0d769ba 100644
--- a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_48cb56();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_48cb56();
diff --git a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.dxc.hlsl
index 681e0a2..d51b176 100644
--- a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_48cb56();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_48cb56();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.fxc.hlsl
index 681e0a2..d51b176 100644
--- a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_48cb56();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_48cb56();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.glsl
index afebf57..2eaf821 100644
--- a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_48cb56() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_48cb56();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.msl
index ed93b42..60b4a53 100644
--- a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_48cb56(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_48cb56(texture2d_array<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_48cb56(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_48cb56(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_48cb56(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_48cb56(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_48cb56(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.spvasm
index 0697c19..ef6adcd 100644
--- a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.spvasm
@@ -1,97 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_48cb56 "textureStore_48cb56"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %26 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_48cb56 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_48cb56 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_48cb56
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_48cb56
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_48cb56
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_48cb56
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_48cb56
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.wgsl
index 1e51bb8..303f667 100644
--- a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_48cb56();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_48cb56();
diff --git a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl
index e458052..46867a0 100644
--- a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl
@@ -44,12 +44,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_48eae1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_48eae1();
diff --git a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.dxc.hlsl
index 9d86ada..15bda7f 100644
--- a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_48eae1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_48eae1();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.fxc.hlsl
index 9d86ada..15bda7f 100644
--- a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_48eae1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_48eae1();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.msl
index 5f4aaeb5..3ce59f0 100644
--- a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_48eae1(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_48eae1(texture2d<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_48eae1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_48eae1(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_48eae1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_48eae1(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_48eae1(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.spvasm
index 92f5805..03bad9f 100644
--- a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.spvasm
@@ -1,85 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_48eae1 "textureStore_48eae1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_48eae1 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_48eae1 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_48eae1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_48eae1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_48eae1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_48eae1
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_48eae1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.wgsl
index 916f94f..136d297 100644
--- a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.wgsl
@@ -8,12 +8,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_48eae1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_48eae1();
diff --git a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl
index 544e0c0..5bf315a 100644
--- a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4bf1fd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4bf1fd();
diff --git a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.dxc.hlsl
index 38bc400..452c2f4 100644
--- a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4bf1fd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4bf1fd();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.fxc.hlsl
index 38bc400..452c2f4 100644
--- a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4bf1fd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4bf1fd();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.glsl
index 8c302b9..d1786da 100644
--- a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2D arg_0;
-void textureStore_4bf1fd() {
-  uvec2 arg_1 = uvec2(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_4bf1fd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.msl
index e834b2d..9389911 100644
--- a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4bf1fd(texture2d<uint, access::read_write> tint_symbol_1) {
+void textureStore_4bf1fd(texture2d<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_4bf1fd(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4bf1fd(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4bf1fd(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4bf1fd(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4bf1fd(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.spvasm
index a7f5e9e..ac091c9 100644
--- a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4bf1fd "textureStore_4bf1fd"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_4bf1fd = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4uint
+%textureStore_4bf1fd = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_4bf1fd
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_4bf1fd
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_4bf1fd
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_4bf1fd
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_4bf1fd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.wgsl
index 6abf9a7..de2ee06 100644
--- a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4bf1fd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4bf1fd();
diff --git a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl
index f92cb3e..51ba582 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4c454f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4c454f();
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 5374105..da05c77 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4c454f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4c454f();
   return;
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 5374105..da05c77 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4c454f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4c454f();
   return;
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 6cff1e9..bdbc717 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4c454f(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_4c454f(texture2d_array<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_4c454f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4c454f(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4c454f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4c454f(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4c454f(tint_symbol_2);
   return;
 }
 
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 593df6e..f2aea9b 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4c454f "textureStore_4c454f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %26 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_4c454f = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_4c454f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_4c454f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_4c454f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_4c454f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_4c454f
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 29e2d28..1afae9e 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4c454f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4c454f();
diff --git a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl
index 4a4caf8..547e85d 100644
--- a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4c76b7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4c76b7();
diff --git a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.dxc.hlsl
index ac286a6..85fda9f 100644
--- a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4c76b7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4c76b7();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.fxc.hlsl
index ac286a6..85fda9f 100644
--- a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4c76b7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4c76b7();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.glsl
index 280e9db..3f07bd0 100644
--- a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_4c76b7() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_4c76b7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.msl
index 4540a9f..8688895 100644
--- a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4c76b7(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_4c76b7(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_4c76b7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4c76b7(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4c76b7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4c76b7(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4c76b7(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.spvasm
index de18d92..37b9351 100644
--- a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4c76b7 "textureStore_4c76b7"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-%textureStore_4c76b7 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_4c76b7 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
-         %42 = OpVectorShuffle %v4float %41 %41 2 1 0 3
-               OpImageWrite %33 %40 %42
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+         %37 = OpVectorShuffle %v4float %36 %36 2 1 0 3
+               OpImageWrite %28 %35 %37
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_4c76b7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_4c76b7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_4c76b7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_4c76b7
+%compute_main = OpFunction %void None %5
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_4c76b7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.wgsl
index 697e7d5..a1ce7f3 100644
--- a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4c76b7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4c76b7();
diff --git a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl
index b5e7cd9..b5e2913 100644
--- a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4cce74();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4cce74();
diff --git a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.dxc.hlsl
index 3b80140..3d8ef87 100644
--- a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4cce74();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4cce74();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.fxc.hlsl
index 3b80140..3d8ef87 100644
--- a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4cce74();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4cce74();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.msl
index 5473f69..cad8204 100644
--- a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4cce74(texture1d<uint, access::read_write> tint_symbol_1) {
+void textureStore_4cce74(texture1d<uint, access::read_write> tint_symbol) {
   int arg_1 = 1;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_4cce74(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4cce74(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4cce74(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4cce74(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4cce74(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.spvasm
index a273921..abff276 100644
--- a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4cce74 "textureStore_4cce74"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %21 = OpConstantNull %int
+         %13 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_4cce74 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+         %19 = OpConstantNull %v4uint
+%textureStore_4cce74 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %int %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_4cce74
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_4cce74
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_4cce74
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_4cce74
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_4cce74
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.wgsl
index 99bbbe6..e40c1cb 100644
--- a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4cce74();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4cce74();
diff --git a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl
index a869647..2a9b7ed 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4d359d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4d359d();
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 2ab52ed..ec04f51 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4d359d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4d359d();
   return;
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 2ab52ed..ec04f51 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4d359d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4d359d();
   return;
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 7f3c1b3..dbb4111 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4d359d(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_4d359d(texture2d_array<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_4d359d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4d359d(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4d359d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4d359d(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4d359d(tint_symbol_2);
   return;
 }
 
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 9db4aeb..9ff48e1 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.spvasm
@@ -1,100 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4d359d "textureStore_4d359d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_4d359d = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_4d359d = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_4d359d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_4d359d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_4d359d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_4d359d
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 ae6aa59..8381ad9 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4d359d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4d359d();
diff --git a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl
index 8dd36df..bb0acdb 100644
--- a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4ddf52();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4ddf52();
diff --git a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.dxc.hlsl
index 4c34d3c..3052f4b 100644
--- a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4ddf52();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4ddf52();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.fxc.hlsl
index 4c34d3c..3052f4b 100644
--- a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4ddf52();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4ddf52();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.glsl
index d078424..1cf7a19 100644
--- a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_4ddf52() {
-  uvec2 arg_1 = uvec2(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_4ddf52();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.msl
index abb7566..38f089e 100644
--- a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4ddf52(texture2d<int, access::read_write> tint_symbol_1) {
+void textureStore_4ddf52(texture2d<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_4ddf52(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4ddf52(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4ddf52(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4ddf52(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4ddf52(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.spvasm
index b7e3ac1..c985378 100644
--- a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4ddf52 "textureStore_4ddf52"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_4ddf52 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4int
+%textureStore_4ddf52 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_4ddf52
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_4ddf52
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_4ddf52
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_4ddf52
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_4ddf52
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.wgsl
index c7e13de..3f4f536 100644
--- a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4ddf52();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4ddf52();
diff --git a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl
index bc4cf20..f756772 100644
--- a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4e2b3a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4e2b3a();
diff --git a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.dxc.hlsl
index 566ba27..7903cfe 100644
--- a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4e2b3a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4e2b3a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.fxc.hlsl
index 566ba27..7903cfe 100644
--- a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4e2b3a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4e2b3a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.msl
index 28e192c..490c0d5 100644
--- a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4e2b3a(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_4e2b3a(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_4e2b3a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4e2b3a(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4e2b3a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4e2b3a(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4e2b3a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.spvasm
index b01b1a8..b7271c2 100644
--- a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4e2b3a "textureStore_4e2b3a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
-%textureStore_4e2b3a = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_4e2b3a = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_4e2b3a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_4e2b3a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_4e2b3a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_4e2b3a
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_4e2b3a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.wgsl
index ccca50b..2005e40 100644
--- a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4e2b3a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4e2b3a();
diff --git a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl
index 3fa0e84..7e82dd5 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4fc057();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4fc057();
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 aa75e9b..6a016cf 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4fc057();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4fc057();
   return;
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 aa75e9b..6a016cf 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_4fc057();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_4fc057();
   return;
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 ea87595..6143d67 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_4fc057() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_4fc057();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 d3ed57b..c0af068 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_4fc057(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_4fc057(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_4fc057(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_4fc057(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_4fc057(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_4fc057(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_4fc057(tint_symbol_2);
   return;
 }
 
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 f3cfd34..4dbd126 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_4fc057 "textureStore_4fc057"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
-%textureStore_4fc057 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_4fc057 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_4fc057
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_4fc057
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_4fc057
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_4fc057
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 caa193c..3025be6 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4fc057();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_4fc057();
diff --git a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl
index 18fbeeb..4e5a741 100644
--- a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5030f5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5030f5();
diff --git a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.dxc.hlsl
index a533f78..aebd04d 100644
--- a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5030f5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5030f5();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.fxc.hlsl
index a533f78..aebd04d 100644
--- a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5030f5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5030f5();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.glsl
index b8f6c41..1573c0d 100644
--- a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_5030f5() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_5030f5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.msl
index 48ac7dd..fb6ea24 100644
--- a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5030f5(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_5030f5(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_5030f5(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5030f5(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5030f5(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5030f5(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5030f5(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.spvasm
index bed4764..322c6a6 100644
--- a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5030f5 "textureStore_5030f5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
-%textureStore_5030f5 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_5030f5 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-         %39 = OpVectorShuffle %v4float %38 %38 2 1 0 3
-               OpImageWrite %31 %37 %39
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+         %34 = OpVectorShuffle %v4float %33 %33 2 1 0 3
+               OpImageWrite %26 %32 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_5030f5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_5030f5
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_5030f5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_5030f5
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_5030f5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.wgsl
index 5641158..eecb2bf 100644
--- a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5030f5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5030f5();
diff --git a/test/tint/builtins/gen/var/textureStore/506a71.wgsl b/test/tint/builtins/gen/var/textureStore/506a71.wgsl
index 4480f81..471168a 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_506a71();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_506a71();
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 1c29e1c..a394771 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_506a71();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_506a71();
   return;
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 1c29e1c..a394771 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_506a71();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_506a71();
   return;
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 d55f5d8..2270f3e 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_506a71(texture2d<uint, access::write> tint_symbol_1) {
+void textureStore_506a71(texture2d<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_506a71(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_506a71(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_506a71(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_506a71(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_506a71(tint_symbol_2);
   return;
 }
 
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 ec7574f..e7c922b 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_506a71 "textureStore_506a71"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %19 = OpConstantNull %v4uint
+%textureStore_506a71 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_506a71
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_506a71
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_506a71
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_506a71
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 a8dea61..fc046ee 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_506a71();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_506a71();
diff --git a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl
index ebf3633..d7fafca 100644
--- a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_51ec82();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_51ec82();
diff --git a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.dxc.hlsl
index 2b5d523..49d11db 100644
--- a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_51ec82();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_51ec82();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.fxc.hlsl
index 2b5d523..49d11db 100644
--- a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_51ec82();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_51ec82();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.msl
index 2dd9322..8e75d4a 100644
--- a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_51ec82(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_51ec82(texture1d<float, access::read_write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_51ec82(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_51ec82(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_51ec82(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_51ec82(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_51ec82(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.spvasm
index 9056d75..14f37e5 100644
--- a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_51ec82 "textureStore_51ec82"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_51ec82 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_51ec82 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_51ec82
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_51ec82
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_51ec82
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_51ec82
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_51ec82
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.wgsl
index a6d59bf..6bbe874 100644
--- a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_51ec82();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_51ec82();
diff --git a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl
index 6db783c..501293b 100644
--- a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5246b4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5246b4();
diff --git a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.dxc.hlsl
index 4263c51..d0c76b4 100644
--- a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5246b4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5246b4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.fxc.hlsl
index 4263c51..d0c76b4 100644
--- a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5246b4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5246b4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.glsl
index b8a2af5..6f93f2e 100644
--- a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage3D arg_0;
-void textureStore_5246b4() {
-  uvec3 arg_1 = uvec3(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_5246b4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.msl
index 6e63bf6..297b578 100644
--- a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5246b4(texture3d<uint, access::read_write> tint_symbol_1) {
+void textureStore_5246b4(texture3d<uint, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_5246b4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5246b4(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5246b4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5246b4(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5246b4(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.spvasm
index 661cd97..8bbd476 100644
--- a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5246b4 "textureStore_5246b4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %11 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %14 = OpConstantNull %v3uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_5246b4 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint 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 %v3uint %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+         %19 = OpConstantNull %v4uint
+%textureStore_5246b4 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_5246b4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_5246b4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_5246b4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_5246b4
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_5246b4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.wgsl
index 5d80054..4ee0023 100644
--- a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5246b4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5246b4();
diff --git a/test/tint/builtins/gen/var/textureStore/52f503.wgsl b/test/tint/builtins/gen/var/textureStore/52f503.wgsl
index 90c0326..e7a5ec8 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_52f503();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_52f503();
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 399bc79..c35f233 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_52f503();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_52f503();
   return;
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 399bc79..c35f233 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_52f503();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_52f503();
   return;
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 110745b..defacff 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_52f503() {
-  uvec2 arg_1 = uvec2(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_52f503();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 210163c..0562c40 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_52f503(texture2d<int, access::write> tint_symbol_1) {
+void textureStore_52f503(texture2d<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_52f503(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_52f503(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_52f503(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_52f503(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_52f503(tint_symbol_2);
   return;
 }
 
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 b5967d5..8995220 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_52f503 "textureStore_52f503"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %21 = OpConstantNull %v4int
+%textureStore_52f503 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_52f503
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_52f503
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_52f503
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_52f503
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 5fafa0d..72d25f5 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_52f503();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_52f503();
diff --git a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl
index f2d0f18..47eed44 100644
--- a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_53a68b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_53a68b();
diff --git a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.dxc.hlsl
index 7b7be11..8814601 100644
--- a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_53a68b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_53a68b();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.fxc.hlsl
index 7b7be11..8814601 100644
--- a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_53a68b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_53a68b();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.glsl
index 1713cb2..f3b11d8 100644
--- a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage3D arg_0;
-void textureStore_53a68b() {
-  ivec3 arg_1 = ivec3(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_53a68b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.msl
index 2165960..060ae7c 100644
--- a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_53a68b(texture3d<uint, access::read_write> tint_symbol_1) {
+void textureStore_53a68b(texture3d<uint, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_53a68b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_53a68b(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_53a68b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_53a68b(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_53a68b(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.spvasm
index 08413ec..ec45461 100644
--- a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_53a68b "textureStore_53a68b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %23 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_53a68b = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4uint
+%textureStore_53a68b = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_53a68b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_53a68b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_53a68b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_53a68b
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_53a68b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.wgsl
index 4b1ee67..48f6362 100644
--- a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_53a68b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_53a68b();
diff --git a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl
index a4673b2..1de2d96 100644
--- a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5425ab();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5425ab();
diff --git a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.dxc.hlsl
index a60ca30..c7ad42a 100644
--- a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5425ab();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5425ab();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.fxc.hlsl
index a60ca30..c7ad42a 100644
--- a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5425ab();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5425ab();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.msl
index 6732325..4f0db73 100644
--- a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5425ab(texture2d<uint, access::read_write> tint_symbol_1) {
+void textureStore_5425ab(texture2d<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_5425ab(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5425ab(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5425ab(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5425ab(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5425ab(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.spvasm
index 37393f9..885d73b 100644
--- a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5425ab "textureStore_5425ab"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_5425ab = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4uint
+%textureStore_5425ab = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_5425ab
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_5425ab
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_5425ab
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_5425ab
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_5425ab
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.wgsl
index 1a427a4..a0dad6f 100644
--- a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5425ab();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5425ab();
diff --git a/test/tint/builtins/gen/var/textureStore/544f06.wgsl b/test/tint/builtins/gen/var/textureStore/544f06.wgsl
index 99ca7dc..dce75e2 100644
--- a/test/tint/builtins/gen/var/textureStore/544f06.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/544f06.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_544f06();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_544f06();
diff --git a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.dxc.hlsl
index ee2814e..adf8c1a 100644
--- a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_544f06();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_544f06();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.fxc.hlsl
index ee2814e..adf8c1a 100644
--- a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_544f06();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_544f06();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.glsl
index 9dc2fbe..4805e58 100644
--- a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_544f06() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_544f06();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.msl
index 8e5d276..593d731 100644
--- a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_544f06(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_544f06(texture2d<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_544f06(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_544f06(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_544f06(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_544f06(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_544f06(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.spvasm
index 24678e6..9b16b23 100644
--- a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_544f06 "textureStore_544f06"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
-%textureStore_544f06 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %19
-               OpStore %arg_2 %24
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2int %arg_1
-         %30 = OpLoad %v4float %arg_2
-         %31 = OpVectorShuffle %v4float %30 %30 2 1 0 3
-               OpImageWrite %28 %29 %31
+         %21 = OpConstantNull %v4float
+%textureStore_544f06 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+         %26 = OpVectorShuffle %v4float %25 %25 2 1 0 3
+               OpImageWrite %23 %24 %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_544f06
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_544f06
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_544f06
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_544f06
+%compute_main = OpFunction %void None %5
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_544f06
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.wgsl
index d25c575..4ce0589 100644
--- a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_544f06();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_544f06();
diff --git a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl
index b30e9a5..40028d8 100644
--- a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_55f9dc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_55f9dc();
diff --git a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.dxc.hlsl
index cff72ed..e7f4da8 100644
--- a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_55f9dc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_55f9dc();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.fxc.hlsl
index cff72ed..e7f4da8 100644
--- a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_55f9dc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_55f9dc();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.glsl
index 92b4bd3..594a232 100644
--- a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_55f9dc() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_55f9dc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.msl
index 33f3b90..3ead052 100644
--- a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_55f9dc(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_55f9dc(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_55f9dc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_55f9dc(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_55f9dc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_55f9dc(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_55f9dc(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.spvasm
index 723b3ed..34598c6 100644
--- a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.spvasm
@@ -1,93 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_55f9dc "textureStore_55f9dc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
-%textureStore_55f9dc = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_55f9dc = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_55f9dc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_55f9dc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_55f9dc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_55f9dc
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_55f9dc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.wgsl
index 87f8f16..cfeb177 100644
--- a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_55f9dc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_55f9dc();
diff --git a/test/tint/builtins/gen/var/textureStore/574a31.wgsl b/test/tint/builtins/gen/var/textureStore/574a31.wgsl
index 0002b70..8ed0862 100644
--- a/test/tint/builtins/gen/var/textureStore/574a31.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/574a31.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_574a31();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_574a31();
diff --git a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.dxc.hlsl
index fa78dbe..61d258e 100644
--- a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_574a31();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_574a31();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.fxc.hlsl
index fa78dbe..61d258e 100644
--- a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_574a31();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_574a31();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.msl
index 7f7885f..35cb73b 100644
--- a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_574a31(texture1d<int, access::read_write> tint_symbol_1) {
+void textureStore_574a31(texture1d<int, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_574a31(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_574a31(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_574a31(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_574a31(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_574a31(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.spvasm
index 5a43a8d..5a19c6b 100644
--- a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_574a31 "textureStore_574a31"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %21 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_574a31 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+         %19 = OpConstantNull %v4int
+%textureStore_574a31 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %uint %arg_1
-         %31 = OpLoad %v4int %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_574a31
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_574a31
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_574a31
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_574a31
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_574a31
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.wgsl
index 511b5be..5aab2f6 100644
--- a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_574a31();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_574a31();
diff --git a/test/tint/builtins/gen/var/textureStore/579b93.wgsl b/test/tint/builtins/gen/var/textureStore/579b93.wgsl
index 7a556b4..e26dc28 100644
--- a/test/tint/builtins/gen/var/textureStore/579b93.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/579b93.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_579b93();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_579b93();
diff --git a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.dxc.hlsl
index ecc4eee..8aa624a 100644
--- a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_579b93();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_579b93();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.fxc.hlsl
index ecc4eee..8aa624a 100644
--- a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_579b93();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_579b93();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.glsl
index bacce0c..e46c303 100644
--- a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2D arg_0;
-void textureStore_579b93() {
-  ivec2 arg_1 = ivec2(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_579b93();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.msl
index 3276770..bfafbe3 100644
--- a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_579b93(texture2d<uint, access::read_write> tint_symbol_1) {
+void textureStore_579b93(texture2d<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_579b93(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_579b93(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_579b93(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_579b93(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_579b93(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.spvasm
index 9e5a84e..ade1478 100644
--- a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_579b93 "textureStore_579b93"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_579b93 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4uint
+%textureStore_579b93 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_579b93
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_579b93
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_579b93
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_579b93
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_579b93
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.wgsl
index b852092..772ae38 100644
--- a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_579b93();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_579b93();
diff --git a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl
index 578ddf0..cb2e22f 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5841f8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5841f8();
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 de6c467..e7fef11 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5841f8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5841f8();
   return;
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 de6c467..e7fef11 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5841f8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5841f8();
   return;
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 99774cc..40e8dee 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_5841f8() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_5841f8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 598bc90..87018ff 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5841f8(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_5841f8(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_5841f8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5841f8(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5841f8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5841f8(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5841f8(tint_symbol_2);
   return;
 }
 
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 c12f982..9d1f872 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5841f8 "textureStore_5841f8"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
-%textureStore_5841f8 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_5841f8 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_5841f8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_5841f8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_5841f8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_5841f8
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 bd76946..8aaebdb 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5841f8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5841f8();
diff --git a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl
index 7ab81fc..1552696 100644
--- a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_58fc35();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_58fc35();
diff --git a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.dxc.hlsl
index f12682d..17f9ba1f 100644
--- a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_58fc35();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_58fc35();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.fxc.hlsl
index f12682d..17f9ba1f 100644
--- a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_58fc35();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_58fc35();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.glsl
index 4c226d0..fabd5cd 100644
--- a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_58fc35() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_58fc35();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.msl
index e6610ae..ccdc8d9 100644
--- a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_58fc35(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_58fc35(texture1d<float, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_58fc35(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_58fc35(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_58fc35(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_58fc35(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_58fc35(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.spvasm
index 195ff6c..69486f5 100644
--- a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.spvasm
@@ -1,82 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_58fc35 "textureStore_58fc35"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_58fc35 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_58fc35 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_58fc35
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_58fc35
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_58fc35
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_58fc35
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_58fc35
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.wgsl
index 88b4c6a..8273e92 100644
--- a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_58fc35();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_58fc35();
diff --git a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl
index b1d2df1..1d067bc 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_59a0ab();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_59a0ab();
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 f953a9a..f3d16dc 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_59a0ab();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_59a0ab();
   return;
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 f953a9a..f3d16dc 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_59a0ab();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_59a0ab();
   return;
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 14ec3e1..c9c1de0 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_59a0ab() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_59a0ab();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 15898bf..0ca76ac 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_59a0ab(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_59a0ab(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_59a0ab(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_59a0ab(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_59a0ab(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_59a0ab(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_59a0ab(tint_symbol_2);
   return;
 }
 
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 4e2f6e7..f13f824 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_59a0ab "textureStore_59a0ab"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-%textureStore_59a0ab = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_59a0ab = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_59a0ab
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_59a0ab
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_59a0ab
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_59a0ab
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = 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 90e9ec8..5dc8098 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_59a0ab();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_59a0ab();
diff --git a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl
index d4e516b..053d828 100644
--- a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5a2f8f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5a2f8f();
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 4ad6c74..9f15e82 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5a2f8f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5a2f8f();
   return;
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 4ad6c74..9f15e82 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5a2f8f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5a2f8f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.glsl
index 586ca7d..ce2e0a7 100644
--- a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_5a2f8f() {
-  int arg_1 = 1;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_5a2f8f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 3368907..356645d 100644
--- a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5a2f8f(texture1d<int, access::write> tint_symbol_1) {
+void textureStore_5a2f8f(texture1d<int, access::write> tint_symbol) {
   int arg_1 = 1;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_5a2f8f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5a2f8f(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5a2f8f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5a2f8f(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5a2f8f(tint_symbol_2);
   return;
 }
 
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 d9aa5fa..8f98617 100644
--- a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5a2f8f "textureStore_5a2f8f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %12 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %25
+         %17 = OpConstantNull %v4int
+%textureStore_5a2f8f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %17
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %int %arg_1
+         %21 = OpLoad %v4int %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_5a2f8f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_5a2f8f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_5a2f8f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_5a2f8f
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 99ec886..598f8f1 100644
--- a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5a2f8f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5a2f8f();
diff --git a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl
index 202dbc9..3119af3 100644
--- a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5a8b41();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5a8b41();
diff --git a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.dxc.hlsl
index 966d4ab..6d87324 100644
--- a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5a8b41();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5a8b41();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.fxc.hlsl
index 966d4ab..6d87324 100644
--- a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5a8b41();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5a8b41();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.glsl
index 0c09dd2..ff60e58 100644
--- a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_5a8b41() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_5a8b41();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.msl
index 2552d65..6f1c645 100644
--- a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5a8b41(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_5a8b41(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_5a8b41(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5a8b41(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5a8b41(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5a8b41(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5a8b41(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.spvasm
index d27da4b..ff7c4db 100644
--- a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.spvasm
@@ -1,96 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5a8b41 "textureStore_5a8b41"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-%textureStore_5a8b41 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_5a8b41 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_5a8b41
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_5a8b41
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_5a8b41
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_5a8b41
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_5a8b41
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.wgsl
index d85eac5..28b9ec7 100644
--- a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5a8b41();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5a8b41();
diff --git a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl
index 982e4a5..a980aa9 100644
--- a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5b17eb();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5b17eb();
diff --git a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.dxc.hlsl
index 893b4ec..4fa76ab 100644
--- a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5b17eb();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5b17eb();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.fxc.hlsl
index 893b4ec..4fa76ab 100644
--- a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5b17eb();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5b17eb();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.msl
index 6aa479e..731c96b 100644
--- a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5b17eb(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_5b17eb(texture2d<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_5b17eb(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5b17eb(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5b17eb(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5b17eb(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5b17eb(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.spvasm
index 6ca9ea0..e1898c6 100644
--- a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5b17eb "textureStore_5b17eb"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_5b17eb = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_5b17eb = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_5b17eb
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_5b17eb
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_5b17eb
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_5b17eb
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_5b17eb
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.wgsl
index 98d5e6a..9f11d24 100644
--- a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5b17eb();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5b17eb();
diff --git a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl
index 3cfa1fc..0744642 100644
--- a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5b4522();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5b4522();
diff --git a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.dxc.hlsl
index a9ed64d..6c8c782 100644
--- a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5b4522();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5b4522();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.fxc.hlsl
index a9ed64d..6c8c782 100644
--- a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5b4522();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5b4522();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.glsl
index 9dc741c..3574e3e 100644
--- a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_5b4522() {
-  uint arg_1 = 1u;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_5b4522();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.msl
index 8213d43..cdc35f2 100644
--- a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5b4522(texture1d<uint, access::read_write> tint_symbol_1) {
+void textureStore_5b4522(texture1d<uint, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_5b4522(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5b4522(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5b4522(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5b4522(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5b4522(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.spvasm
index 9495b90..bd7200d 100644
--- a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.spvasm
@@ -1,84 +1,55 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5b4522 "textureStore_5b4522"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %12 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %25 = OpConstantNull %v4uint
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_5b4522 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
+         %17 = OpConstantNull %v4uint
+%textureStore_5b4522 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %17
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %uint %arg_1
+         %21 = OpLoad %v4uint %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_5b4522
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_5b4522
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_5b4522
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_5b4522
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_5b4522
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.wgsl
index b1ddc88..0fd8b70 100644
--- a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5b4522();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5b4522();
diff --git a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl
index d48e158..527c263 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5bc4f3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5bc4f3();
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 9d70b3b..0453b6f 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5bc4f3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5bc4f3();
   return;
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 9d70b3b..0453b6f 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5bc4f3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5bc4f3();
   return;
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 f210ad5..b574eab 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5bc4f3(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_5bc4f3(texture2d_array<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_5bc4f3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5bc4f3(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5bc4f3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5bc4f3(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5bc4f3(tint_symbol_2);
   return;
 }
 
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 ee825f4..cdd71f2 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.spvasm
@@ -1,97 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5bc4f3 "textureStore_5bc4f3"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %17 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpConstantNull %v4uint
+         %22 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_5bc4f3 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_5bc4f3 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2uint %arg_1
+         %27 = OpCompositeExtract %uint %26 0
+         %28 = OpCompositeExtract %uint %26 1
+         %29 = OpLoad %uint %arg_2
+         %30 = OpCompositeConstruct %v3uint %27 %28 %29
+         %31 = OpLoad %v4uint %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_5bc4f3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_5bc4f3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_5bc4f3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_5bc4f3
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = 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 e1578ba..ce354ee 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5bc4f3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5bc4f3();
diff --git a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl
index 3de0126..4e3fe61 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5ddc61();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5ddc61();
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 e85b84a..3c1b7e8 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5ddc61();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5ddc61();
   return;
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 e85b84a..3c1b7e8 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5ddc61();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5ddc61();
   return;
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 8ae1664..713b220 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_5ddc61() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_5ddc61();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 da2667b..ae566fa 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5ddc61(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_5ddc61(texture2d_array<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_5ddc61(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5ddc61(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5ddc61(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5ddc61(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5ddc61(tint_symbol_2);
   return;
 }
 
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 e0e9b55..6d604c2 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5ddc61 "textureStore_5ddc61"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_5ddc61 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_5ddc61 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_5ddc61
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_5ddc61
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_5ddc61
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_5ddc61
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 cd6c1f4..2b4c75e 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5ddc61();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5ddc61();
diff --git a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl
index d0ffd2f..fb3a7d1 100644
--- a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5ec6b2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5ec6b2();
diff --git a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.dxc.hlsl
index 449e628..fbea26d 100644
--- a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5ec6b2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5ec6b2();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.fxc.hlsl
index 449e628..fbea26d 100644
--- a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5ec6b2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5ec6b2();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.glsl
index f425a45..d9636dd 100644
--- a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image3D arg_0;
-void textureStore_5ec6b2() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_5ec6b2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.msl
index 2b80549..d69b794 100644
--- a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5ec6b2(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_5ec6b2(texture3d<float, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_5ec6b2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5ec6b2(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5ec6b2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5ec6b2(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5ec6b2(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.spvasm
index ef99bf9..e2adf9c 100644
--- a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5ec6b2 "textureStore_5ec6b2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_5ec6b2 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_5ec6b2 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_5ec6b2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_5ec6b2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_5ec6b2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_5ec6b2
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_5ec6b2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.wgsl
index 6473c6f..a12bbe6 100644
--- a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5ec6b2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5ec6b2();
diff --git a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl
index eedb30c..6512f06 100644
--- a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5ee194();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5ee194();
diff --git a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.dxc.hlsl
index 88e4419..f290aff 100644
--- a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5ee194();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5ee194();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.fxc.hlsl
index 88e4419..f290aff 100644
--- a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5ee194();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5ee194();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.msl
index 8813bf0..6f67e24 100644
--- a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5ee194(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_5ee194(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_5ee194(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5ee194(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5ee194(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5ee194(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5ee194(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.spvasm
index ac603a1..e74356a 100644
--- a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5ee194 "textureStore_5ee194"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
-%textureStore_5ee194 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_5ee194 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_5ee194
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_5ee194
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_5ee194
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_5ee194
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_5ee194
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.wgsl
index bdc7651..07ce105 100644
--- a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5ee194();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5ee194();
diff --git a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl
index 7c68090..0f74bff 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5f9a49();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5f9a49();
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 d481880..6246f71 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5f9a49();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5f9a49();
   return;
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 d481880..6246f71 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_5f9a49();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_5f9a49();
   return;
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 c20871b..eea0faf 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_5f9a49() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_5f9a49();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 22d41be..95c810a 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_5f9a49(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_5f9a49(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_5f9a49(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_5f9a49(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_5f9a49(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_5f9a49(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_5f9a49(tint_symbol_2);
   return;
 }
 
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 7a17377..8759951 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_5f9a49 "textureStore_5f9a49"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
-%textureStore_5f9a49 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_5f9a49 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_5f9a49
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_5f9a49
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_5f9a49
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_5f9a49
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 8bcf205..a34dc37 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5f9a49();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_5f9a49();
diff --git a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl
index 57f66c4..fb2bff5 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_602b5a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_602b5a();
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 9ee1dc4..e69af80 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_602b5a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_602b5a();
   return;
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 9ee1dc4..e69af80 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_602b5a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_602b5a();
   return;
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 ffc25e3..76486df 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_602b5a(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_602b5a(texture1d<float, access::write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_602b5a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_602b5a(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_602b5a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_602b5a(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_602b5a(tint_symbol_2);
   return;
 }
 
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 46c41f9..d1c19cc 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_602b5a "textureStore_602b5a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = 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
+         %19 = OpConstantNull %v4float
+%textureStore_602b5a = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_602b5a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_602b5a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_602b5a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_602b5a
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 2bd7ed1..c16b27f 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_602b5a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_602b5a();
diff --git a/test/tint/builtins/gen/var/textureStore/60975f.wgsl b/test/tint/builtins/gen/var/textureStore/60975f.wgsl
index 0d4ac26..c88a302 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_60975f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_60975f();
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 ed17639..da24ec7 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_60975f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_60975f();
   return;
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 ed17639..da24ec7 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_60975f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_60975f();
   return;
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 4c2ddae..4273ff6 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_60975f() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_60975f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 3882459..83ea149 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_60975f(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_60975f(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_60975f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_60975f(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_60975f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_60975f(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_60975f(tint_symbol_2);
   return;
 }
 
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 35a3e0d..35a1996 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_60975f "textureStore_60975f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
-%textureStore_60975f = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_60975f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_60975f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_60975f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_60975f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_60975f
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 319364f..6e9aa3b 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_60975f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_60975f();
diff --git a/test/tint/builtins/gen/var/textureStore/614b58.wgsl b/test/tint/builtins/gen/var/textureStore/614b58.wgsl
index 80a901a..7a7d442 100644
--- a/test/tint/builtins/gen/var/textureStore/614b58.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/614b58.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_614b58();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_614b58();
diff --git a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.dxc.hlsl
index 2d76bdc..30ed983 100644
--- a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_614b58();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_614b58();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.fxc.hlsl
index 2d76bdc..30ed983 100644
--- a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_614b58();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_614b58();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.glsl
index b97d56a..6bf3853 100644
--- a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2DArray arg_0;
-void textureStore_614b58() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_614b58();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.msl
index 41cd9f65b..9e136be 100644
--- a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_614b58(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_614b58(texture2d_array<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_614b58(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_614b58(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_614b58(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_614b58(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_614b58(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.spvasm
index 963058d..b78e60e 100644
--- a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_614b58 "textureStore_614b58"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_614b58 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_614b58 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_614b58
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_614b58
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_614b58
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_614b58
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_614b58
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.wgsl
index 77b5fa8..bb59894 100644
--- a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_614b58();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_614b58();
diff --git a/test/tint/builtins/gen/var/textureStore/635584.wgsl b/test/tint/builtins/gen/var/textureStore/635584.wgsl
index d92c515..a963113 100644
--- a/test/tint/builtins/gen/var/textureStore/635584.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/635584.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_635584();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_635584();
diff --git a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.dxc.hlsl
index 72aa865..e74a468 100644
--- a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_635584();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_635584();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.fxc.hlsl
index 72aa865..e74a468 100644
--- a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_635584();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_635584();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.msl
index 6bef3d2..42028ac 100644
--- a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_635584(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_635584(texture1d<float, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_635584(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_635584(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_635584(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_635584(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_635584(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.spvasm
index 0afc7e1..582e137 100644
--- a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_635584 "textureStore_635584"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_635584 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_635584 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_635584
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_635584
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_635584
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_635584
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_635584
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.wgsl
index 6bf8897..cb8a75b 100644
--- a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_635584();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_635584();
diff --git a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl
index 37f70c8..375c84c 100644
--- a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_63f34a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_63f34a();
diff --git a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.dxc.hlsl
index 6607d0e..422aaa6 100644
--- a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_63f34a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_63f34a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.fxc.hlsl
index 6607d0e..422aaa6 100644
--- a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_63f34a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_63f34a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.msl
index 8226f30..93dc319 100644
--- a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_63f34a(texture2d<int, access::read_write> tint_symbol_1) {
+void textureStore_63f34a(texture2d<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_63f34a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_63f34a(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_63f34a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_63f34a(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_63f34a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.spvasm
index b7104c2..ef88baa 100644
--- a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_63f34a "textureStore_63f34a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_63f34a = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4int
+%textureStore_63f34a = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_63f34a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_63f34a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_63f34a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_63f34a
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_63f34a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.wgsl
index 00d6050..b85727b 100644
--- a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_63f34a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_63f34a();
diff --git a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl
index 742d4e2..34937d4 100644
--- a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_646dbc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_646dbc();
diff --git a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.dxc.hlsl
index bb29e6b..de34203 100644
--- a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_646dbc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_646dbc();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.fxc.hlsl
index bb29e6b..de34203 100644
--- a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_646dbc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_646dbc();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.glsl
index 862f161..f93c47c 100644
--- a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_646dbc() {
-  ivec3 arg_1 = ivec3(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_646dbc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.msl
index fe56186..176290b 100644
--- a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_646dbc(texture3d<int, access::read_write> tint_symbol_1) {
+void textureStore_646dbc(texture3d<int, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_646dbc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_646dbc(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_646dbc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_646dbc(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_646dbc(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.spvasm
index 5c1f657..8deeeef 100644
--- a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_646dbc "textureStore_646dbc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %11 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %14 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_646dbc = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4int
+%textureStore_646dbc = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_646dbc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_646dbc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_646dbc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_646dbc
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_646dbc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.wgsl
index 1ff2856..2d7c963 100644
--- a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_646dbc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_646dbc();
diff --git a/test/tint/builtins/gen/var/textureStore/658a74.wgsl b/test/tint/builtins/gen/var/textureStore/658a74.wgsl
index 6faf6cc..49e016f 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_658a74();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_658a74();
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 0efaec7..9713bc6 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_658a74();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_658a74();
   return;
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 0efaec7..9713bc6 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_658a74();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_658a74();
   return;
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 a310879..3021280 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_658a74(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_658a74(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_658a74(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_658a74(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_658a74(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_658a74(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_658a74(tint_symbol_2);
   return;
 }
 
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 ab14481..a15b2c9 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.spvasm
@@ -1,98 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_658a74 "textureStore_658a74"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-%textureStore_658a74 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_658a74 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_658a74
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_658a74
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_658a74
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_658a74
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = 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 d635e16..ff16e36 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_658a74();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_658a74();
diff --git a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl
index b96b05b..6ddff10 100644
--- a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_65b6aa();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_65b6aa();
diff --git a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.dxc.hlsl
index 28272fc..411668e 100644
--- a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_65b6aa();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_65b6aa();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.fxc.hlsl
index 28272fc..411668e 100644
--- a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_65b6aa();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_65b6aa();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.glsl
index 016fd16..8cbe29d 100644
--- a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_65b6aa() {
-  int arg_1 = 1;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_65b6aa();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.msl
index 0fc7d72..059d586 100644
--- a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_65b6aa(texture1d<int, access::read_write> tint_symbol_1) {
+void textureStore_65b6aa(texture1d<int, access::read_write> tint_symbol) {
   int arg_1 = 1;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_65b6aa(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_65b6aa(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_65b6aa(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_65b6aa(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_65b6aa(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.spvasm
index 467c086..2ed97fe 100644
--- a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.spvasm
@@ -1,84 +1,55 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_65b6aa "textureStore_65b6aa"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %12 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %25 = OpConstantNull %v4int
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_65b6aa = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %25
+         %17 = OpConstantNull %v4int
+%textureStore_65b6aa = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %17
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %int %arg_1
+         %21 = OpLoad %v4int %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_65b6aa
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_65b6aa
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_65b6aa
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_65b6aa
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_65b6aa
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.wgsl
index 7c4097c..e66790d 100644
--- a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_65b6aa();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_65b6aa();
diff --git a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl
index c211d21..2b9648c 100644
--- a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl
@@ -44,12 +44,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_65ba8b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_65ba8b();
diff --git a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.dxc.hlsl
index b26c698..63d40d8 100644
--- a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_65ba8b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_65ba8b();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.fxc.hlsl
index b26c698..63d40d8 100644
--- a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_65ba8b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_65ba8b();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.msl
index 25b151e..ec65267 100644
--- a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_65ba8b(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_65ba8b(texture2d<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_65ba8b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_65ba8b(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_65ba8b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_65ba8b(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_65ba8b(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.spvasm
index c1ed28b..4dc0ddd 100644
--- a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_65ba8b "textureStore_65ba8b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_65ba8b = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_65ba8b = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_65ba8b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_65ba8b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_65ba8b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_65ba8b
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_65ba8b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.wgsl
index 67a4f05..15cb052 100644
--- a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.wgsl
@@ -8,12 +8,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_65ba8b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_65ba8b();
diff --git a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl
index 593422a..f70837a 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_682fd6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_682fd6();
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 60c70ce..f2e88d4 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_682fd6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_682fd6();
   return;
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 60c70ce..f2e88d4 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_682fd6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_682fd6();
   return;
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 0d2c30e..9319a0b 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_682fd6(texture2d<uint, access::write> tint_symbol_1) {
+void textureStore_682fd6(texture2d<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_682fd6(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_682fd6(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_682fd6(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_682fd6(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_682fd6(tint_symbol_2);
   return;
 }
 
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 d69210f..c144a48 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.spvasm
@@ -1,89 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_682fd6 "textureStore_682fd6"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %21 = OpConstantNull %v4uint
+%textureStore_682fd6 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_682fd6
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_682fd6
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_682fd6
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_682fd6
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 b887646..8c74901 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_682fd6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_682fd6();
diff --git a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl
index e8194ca..8e43628 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_699a1b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_699a1b();
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 7ffe554..403ff6a 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_699a1b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_699a1b();
   return;
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 7ffe554..403ff6a 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_699a1b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_699a1b();
   return;
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 fdd6aea..a0cd114 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_699a1b() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_699a1b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 635d014..b23e8bb 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_699a1b(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_699a1b(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_699a1b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_699a1b(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_699a1b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_699a1b(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_699a1b(tint_symbol_2);
   return;
 }
 
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 1b2bab9..19f7567 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_699a1b "textureStore_699a1b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
-%textureStore_699a1b = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_699a1b = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_699a1b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_699a1b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_699a1b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_699a1b
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 e15ec37..3c3cf53 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_699a1b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_699a1b();
diff --git a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl
index 067723d..c3edd46 100644
--- a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6b75c3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6b75c3();
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 53c641e..c8a43c8 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6b75c3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6b75c3();
   return;
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 53c641e..c8a43c8 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6b75c3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6b75c3();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.glsl
index 7f0b970..6c1f30d 100644
--- a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_6b75c3() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_6b75c3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 4637282..1f385c4 100644
--- a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6b75c3(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_6b75c3(texture1d<float, access::write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_6b75c3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6b75c3(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6b75c3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6b75c3(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6b75c3(tint_symbol_2);
   return;
 }
 
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 a170644..edafb5e 100644
--- a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6b75c3 "textureStore_6b75c3"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = 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
+         %19 = OpConstantNull %v4float
+%textureStore_6b75c3 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_6b75c3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_6b75c3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_6b75c3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_6b75c3
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 da4a7c7..4c318aa 100644
--- a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6b75c3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6b75c3();
diff --git a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl
index 4399d9c..b965695 100644
--- a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6b80d2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6b80d2();
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 f0c93ec..81709ed 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6b80d2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6b80d2();
   return;
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 f0c93ec..81709ed 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6b80d2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6b80d2();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.glsl
index 03c5d1f..71a13ed 100644
--- a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_6b80d2() {
-  int arg_1 = 1;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_6b80d2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 872ebc4..357f95d 100644
--- a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6b80d2(texture1d<int, access::write> tint_symbol_1) {
+void textureStore_6b80d2(texture1d<int, access::write> tint_symbol) {
   int arg_1 = 1;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_6b80d2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6b80d2(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6b80d2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6b80d2(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6b80d2(tint_symbol_2);
   return;
 }
 
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 e068ee9..5efbbf5 100644
--- a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6b80d2 "textureStore_6b80d2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %12 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %25
+         %17 = OpConstantNull %v4int
+%textureStore_6b80d2 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %17
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %int %arg_1
+         %21 = OpLoad %v4int %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_6b80d2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_6b80d2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_6b80d2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_6b80d2
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 6d34e25..27627ce 100644
--- a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6b80d2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6b80d2();
diff --git a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl
index d07786a..7775509 100644
--- a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6be9e0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6be9e0();
diff --git a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.dxc.hlsl
index f8e71e9..76bb84b 100644
--- a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6be9e0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6be9e0();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.fxc.hlsl
index f8e71e9..76bb84b 100644
--- a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6be9e0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6be9e0();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.glsl
index 69f2ded..88748fd 100644
--- a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image3D arg_0;
-void textureStore_6be9e0() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_6be9e0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.msl
index 43e287e..bce482b 100644
--- a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6be9e0(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_6be9e0(texture3d<float, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_6be9e0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6be9e0(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6be9e0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6be9e0(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6be9e0(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.spvasm
index 3100cb2..e2eee39 100644
--- a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6be9e0 "textureStore_6be9e0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_6be9e0 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_6be9e0 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_6be9e0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_6be9e0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_6be9e0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_6be9e0
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_6be9e0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.wgsl
index 3a8d021..7f046e3 100644
--- a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6be9e0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6be9e0();
diff --git a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl
index 6a69e82..8367d95 100644
--- a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6c4a70();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6c4a70();
diff --git a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.dxc.hlsl
index 16c61cd..9d8be3a 100644
--- a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6c4a70();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6c4a70();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.fxc.hlsl
index 16c61cd..9d8be3a 100644
--- a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6c4a70();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6c4a70();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.glsl
index 391cf72..a801ea8 100644
--- a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2D arg_0;
-void textureStore_6c4a70() {
-  uvec2 arg_1 = uvec2(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_6c4a70();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.msl
index 1b0da65..c39aa94 100644
--- a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6c4a70(texture2d<int, access::read_write> tint_symbol_1) {
+void textureStore_6c4a70(texture2d<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_6c4a70(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6c4a70(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6c4a70(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6c4a70(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6c4a70(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.spvasm
index 723d3de..48cd9eb 100644
--- a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6c4a70 "textureStore_6c4a70"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_6c4a70 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4int
+%textureStore_6c4a70 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_6c4a70
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_6c4a70
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_6c4a70
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_6c4a70
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_6c4a70
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.wgsl
index 01a7052..c399d80 100644
--- a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6c4a70();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6c4a70();
diff --git a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl
index 49017d3..4ff2472 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6cff2e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6cff2e();
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 f82d04b..7018ba1 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6cff2e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6cff2e();
   return;
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 f82d04b..7018ba1 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6cff2e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6cff2e();
   return;
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 0568163..6f75246 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_6cff2e() {
-  ivec2 arg_1 = ivec2(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_6cff2e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 62842d4..06240f3 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6cff2e(texture2d<uint, access::write> tint_symbol_1) {
+void textureStore_6cff2e(texture2d<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_6cff2e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6cff2e(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6cff2e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6cff2e(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6cff2e(tint_symbol_2);
   return;
 }
 
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 e7c5b80..18bfe36 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6cff2e "textureStore_6cff2e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %21 = OpConstantNull %v4uint
+%textureStore_6cff2e = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_6cff2e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_6cff2e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_6cff2e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_6cff2e
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 decce81..6e8be36 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6cff2e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6cff2e();
diff --git a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl
index 4647102..a2c5c19 100644
--- a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6d1809();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6d1809();
diff --git a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.dxc.hlsl
index 36fd532..322047d 100644
--- a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6d1809();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6d1809();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.fxc.hlsl
index 36fd532..322047d 100644
--- a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6d1809();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6d1809();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.glsl
index bb33441..b88b876 100644
--- a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_6d1809() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_6d1809();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.msl
index dd67388..58f3c5d 100644
--- a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6d1809(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_6d1809(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_6d1809(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6d1809(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6d1809(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6d1809(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6d1809(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.spvasm
index 646a6a4..a87cabe 100644
--- a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.spvasm
@@ -1,93 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6d1809 "textureStore_6d1809"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
-%textureStore_6d1809 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_6d1809 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_6d1809
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_6d1809
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_6d1809
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_6d1809
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_6d1809
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.wgsl
index 9e58d16..0ff7356 100644
--- a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6d1809();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6d1809();
diff --git a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl
index 9554884..72227cd 100644
--- a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6d259f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6d259f();
diff --git a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.dxc.hlsl
index 295463c..c768255 100644
--- a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6d259f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6d259f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.fxc.hlsl
index 295463c..c768255 100644
--- a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6d259f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6d259f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.glsl
index 864f2e8..8e2f47e 100644
--- a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_6d259f() {
-  ivec2 arg_1 = ivec2(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_6d259f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.msl
index 1d1e01a..0075fa5 100644
--- a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6d259f(texture2d<uint, access::read_write> tint_symbol_1) {
+void textureStore_6d259f(texture2d<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_6d259f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6d259f(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6d259f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6d259f(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6d259f(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.spvasm
index 8c61767..e8867e5 100644
--- a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6d259f "textureStore_6d259f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_6d259f = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4uint
+%textureStore_6d259f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_6d259f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_6d259f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_6d259f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_6d259f
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_6d259f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.wgsl
index fe5115d..723cc39 100644
--- a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6d259f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6d259f();
diff --git a/test/tint/builtins/gen/var/textureStore/6da692.wgsl b/test/tint/builtins/gen/var/textureStore/6da692.wgsl
index 1db5c85..afbe62e 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6da692();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6da692();
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 d2f0d8f..891dbf7 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6da692();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6da692();
   return;
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 d2f0d8f..891dbf7 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6da692();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6da692();
   return;
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 e2264ab..e9b1fd6 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_6da692() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_6da692();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 4f4cf30..81decbf 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6da692(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_6da692(texture2d_array<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_6da692(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6da692(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6da692(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6da692(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6da692(tint_symbol_2);
   return;
 }
 
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 3dc1804..ff9d7e6 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6da692 "textureStore_6da692"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %26 = OpConstantNull %int
+         %18 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_6da692 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_6da692 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_6da692
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_6da692
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_6da692
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_6da692
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 3aef0ec..26e02de 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6da692();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6da692();
diff --git a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl
index 030b54e..ea54609 100644
--- a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6e6cc0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6e6cc0();
diff --git a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.dxc.hlsl
index d540d20..3d3d46f 100644
--- a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6e6cc0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6e6cc0();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.fxc.hlsl
index d540d20..3d3d46f 100644
--- a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6e6cc0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6e6cc0();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.glsl
index 3da9ad4..40a7bcb 100644
--- a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2D arg_0;
-void textureStore_6e6cc0() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_6e6cc0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.msl
index 7833865..e4f3600 100644
--- a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6e6cc0(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_6e6cc0(texture1d<float, access::read_write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_6e6cc0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6e6cc0(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6e6cc0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6e6cc0(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6e6cc0(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.spvasm
index cb124ff..5e47942 100644
--- a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.spvasm
@@ -1,82 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6e6cc0 "textureStore_6e6cc0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_6e6cc0 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_6e6cc0 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_6e6cc0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_6e6cc0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_6e6cc0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_6e6cc0
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_6e6cc0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.wgsl
index 778091a..a78974d 100644
--- a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6e6cc0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6e6cc0();
diff --git a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl
index 6631c7e..5c8858a 100644
--- a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl
@@ -45,12 +45,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6f0c92();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6f0c92();
diff --git a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.dxc.hlsl
index 5a659de..bc00f6e 100644
--- a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6f0c92();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6f0c92();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.fxc.hlsl
index 5a659de..bc00f6e 100644
--- a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6f0c92();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6f0c92();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.msl
index 81265c8..7a32c6f 100644
--- a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6f0c92(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_6f0c92(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_6f0c92(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6f0c92(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6f0c92(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6f0c92(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6f0c92(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.spvasm
index 9bf4762..c0800c8 100644
--- a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6f0c92 "textureStore_6f0c92"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-%textureStore_6f0c92 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_6f0c92 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_6f0c92
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_6f0c92
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_6f0c92
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_6f0c92
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_6f0c92
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.wgsl
index b6ef81a..3e33002 100644
--- a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.wgsl
@@ -9,12 +9,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6f0c92();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6f0c92();
diff --git a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl
index 1efbad9..eff07b7 100644
--- a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6f3542();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6f3542();
diff --git a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.dxc.hlsl
index c611027..09806c6 100644
--- a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6f3542();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6f3542();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.fxc.hlsl
index c611027..09806c6 100644
--- a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6f3542();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6f3542();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.glsl
index 0042d47..0866834 100644
--- a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_6f3542() {
-  ivec3 arg_1 = ivec3(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_6f3542();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.msl
index 2c36a11..4c5bf17 100644
--- a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6f3542(texture3d<uint, access::read_write> tint_symbol_1) {
+void textureStore_6f3542(texture3d<uint, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_6f3542(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6f3542(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6f3542(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6f3542(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6f3542(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.spvasm
index d21ef9b..12c5d17 100644
--- a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6f3542 "textureStore_6f3542"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %23 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_6f3542 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4uint
+%textureStore_6f3542 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_6f3542
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_6f3542
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_6f3542
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_6f3542
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_6f3542
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.wgsl
index cf420c2..f1088e74 100644
--- a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6f3542();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6f3542();
diff --git a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl
index fd43b14..11efbd3 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6f8642();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6f8642();
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 43b59b251..02f8fef 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6f8642();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6f8642();
   return;
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 43b59b251..02f8fef 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6f8642();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6f8642();
   return;
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 843c54c..9b80d32 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_6f8642() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_6f8642();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 9b423b5..f1bf1b4 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6f8642(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_6f8642(texture2d_array<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_6f8642(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6f8642(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6f8642(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6f8642(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6f8642(tint_symbol_2);
   return;
 }
 
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 786268a..14a3c7c 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6f8642 "textureStore_6f8642"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_6f8642 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_6f8642 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_6f8642
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_6f8642
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_6f8642
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_6f8642
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 cb9827a..b48bcdf 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6f8642();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6f8642();
diff --git a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl
index 1425137..eebf50d 100644
--- a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6fb99b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6fb99b();
diff --git a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.dxc.hlsl
index 70606a5..3782dec 100644
--- a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6fb99b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6fb99b();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.fxc.hlsl
index 70606a5..3782dec 100644
--- a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6fb99b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6fb99b();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.glsl
index f314973..01203ff 100644
--- a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image3D arg_0;
-void textureStore_6fb99b() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_6fb99b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.msl
index c8963c7..a58d1c1 100644
--- a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6fb99b(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_6fb99b(texture3d<float, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_6fb99b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6fb99b(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6fb99b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6fb99b(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6fb99b(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.spvasm
index 8f8cbf1..be7606f 100644
--- a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6fb99b "textureStore_6fb99b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_6fb99b = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_6fb99b = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_6fb99b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_6fb99b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_6fb99b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_6fb99b
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_6fb99b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.wgsl
index 5c5394f..7865aaf 100644
--- a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6fb99b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6fb99b();
diff --git a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl
index f770505..06c8c6f 100644
--- a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl
@@ -44,12 +44,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6fd2b1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6fd2b1();
diff --git a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.dxc.hlsl
index 0b3cd10..40725da 100644
--- a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6fd2b1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6fd2b1();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.fxc.hlsl
index 0b3cd10..40725da 100644
--- a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_6fd2b1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_6fd2b1();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.msl
index f6d80df..e297a89 100644
--- a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_6fd2b1(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_6fd2b1(texture1d<float, access::write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_6fd2b1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_6fd2b1(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_6fd2b1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_6fd2b1(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_6fd2b1(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.spvasm
index bd97fa5..ca78423 100644
--- a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_6fd2b1 "textureStore_6fd2b1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_6fd2b1 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_6fd2b1 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_6fd2b1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_6fd2b1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_6fd2b1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_6fd2b1
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_6fd2b1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.wgsl
index a20c5f2..a910010 100644
--- a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.wgsl
@@ -8,12 +8,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6fd2b1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_6fd2b1();
diff --git a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl
index aefa9a7..474104b 100644
--- a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_704e1f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_704e1f();
diff --git a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.dxc.hlsl
index 1a054b1..4b2df03 100644
--- a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_704e1f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_704e1f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.fxc.hlsl
index 1a054b1..4b2df03 100644
--- a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_704e1f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_704e1f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.glsl
index b347996..4193192 100644
--- a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_704e1f() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_704e1f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.msl
index 3c79d87..732a63f 100644
--- a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_704e1f(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_704e1f(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_704e1f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_704e1f(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_704e1f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_704e1f(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_704e1f(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.spvasm
index b570fd9..d3a290d 100644
--- a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.spvasm
@@ -1,93 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_704e1f "textureStore_704e1f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
-%textureStore_704e1f = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_704e1f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_704e1f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_704e1f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_704e1f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_704e1f
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_704e1f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.wgsl
index 022bdab..07119f6 100644
--- a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_704e1f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_704e1f();
diff --git a/test/tint/builtins/gen/var/textureStore/706236.wgsl b/test/tint/builtins/gen/var/textureStore/706236.wgsl
index e536597..b2cb3ce 100644
--- a/test/tint/builtins/gen/var/textureStore/706236.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/706236.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_706236();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_706236();
diff --git a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.dxc.hlsl
index c4532bb..6491617 100644
--- a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_706236();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_706236();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.fxc.hlsl
index c4532bb..6491617 100644
--- a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_706236();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_706236();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.glsl
index 92eccc1..ea64d1d 100644
--- a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_706236() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_706236();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.msl
index 2e18cd7..7e81e8c 100644
--- a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_706236(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_706236(texture1d<float, access::read_write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_706236(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_706236(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_706236(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_706236(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_706236(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.spvasm
index a1b95ba..f1224e0 100644
--- a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.spvasm
@@ -1,82 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_706236 "textureStore_706236"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_706236 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_706236 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_706236
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_706236
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_706236
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_706236
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_706236
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.wgsl
index 35435af..1df72a5 100644
--- a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_706236();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_706236();
diff --git a/test/tint/builtins/gen/var/textureStore/706560.wgsl b/test/tint/builtins/gen/var/textureStore/706560.wgsl
index 757d6ea..89ac26b 100644
--- a/test/tint/builtins/gen/var/textureStore/706560.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/706560.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_706560();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_706560();
diff --git a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.dxc.hlsl
index 8c61ef8..60d391c 100644
--- a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_706560();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_706560();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.fxc.hlsl
index 8c61ef8..60d391c 100644
--- a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_706560();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_706560();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.glsl
index a06a7a4..72abcd8 100644
--- a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_706560() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_706560();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.msl
index a842fb4..ea44ee3 100644
--- a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_706560(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_706560(texture2d_array<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_706560(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_706560(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_706560(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_706560(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_706560(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.spvasm
index 0a9d808..f893963 100644
--- a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_706560 "textureStore_706560"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_706560 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_706560 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_706560
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_706560
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_706560
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_706560
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_706560
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.wgsl
index dbe6908..2c8c3d0 100644
--- a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_706560();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_706560();
diff --git a/test/tint/builtins/gen/var/textureStore/726472.wgsl b/test/tint/builtins/gen/var/textureStore/726472.wgsl
index 9113a22..f4f8355 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_726472();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_726472();
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 bb08b91..c48a213 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_726472();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_726472();
   return;
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 bb08b91..c48a213 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_726472();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_726472();
   return;
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 a4358df..0929b2c 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_726472(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_726472(texture2d<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_726472(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_726472(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_726472(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_726472(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_726472(tint_symbol_2);
   return;
 }
 
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 f981dac..65f107f 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.spvasm
@@ -1,85 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_726472 "textureStore_726472"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_726472 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_726472
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_726472
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_726472
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_726472
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 1712bd8..88f07a1 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_726472();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_726472();
diff --git a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl
index d0f7aaa..3309a5c 100644
--- a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_726d6d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_726d6d();
diff --git a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.dxc.hlsl
index 0875087..b55ff69 100644
--- a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_726d6d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_726d6d();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.fxc.hlsl
index 0875087..b55ff69 100644
--- a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_726d6d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_726d6d();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.glsl
index 6a7cfc7..86c1f86 100644
--- a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_726d6d() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_726d6d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.msl
index 0607c1a..da4b77c 100644
--- a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_726d6d(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_726d6d(texture2d<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_726d6d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_726d6d(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_726d6d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_726d6d(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_726d6d(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.spvasm
index 08ed1fa..4ad7023 100644
--- a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_726d6d "textureStore_726d6d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_726d6d = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_726d6d = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_726d6d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_726d6d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_726d6d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_726d6d
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_726d6d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.wgsl
index bab174d..06190dc 100644
--- a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_726d6d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_726d6d();
diff --git a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl
index d0fbe4f..2c88442 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_72fa64();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_72fa64();
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 6ca559b..d82dfe5 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_72fa64();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_72fa64();
   return;
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 6ca559b..d82dfe5 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_72fa64();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_72fa64();
   return;
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 7dc7a4d..ce083c1 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_72fa64(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_72fa64(texture2d_array<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_72fa64(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_72fa64(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_72fa64(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_72fa64(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_72fa64(tint_symbol_2);
   return;
 }
 
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 f1980f3..5786695 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.spvasm
@@ -1,100 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_72fa64 "textureStore_72fa64"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_72fa64 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_72fa64 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_72fa64
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_72fa64
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_72fa64
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_72fa64
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 a68ac82..982fb88 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_72fa64();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_72fa64();
diff --git a/test/tint/builtins/gen/var/textureStore/731349.wgsl b/test/tint/builtins/gen/var/textureStore/731349.wgsl
index 40248d2..7044d55 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_731349();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_731349();
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 a52787b..ae3ffda 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_731349();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_731349();
   return;
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 a52787b..ae3ffda 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_731349();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_731349();
   return;
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 d9574a6..1bf9781 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_731349() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_731349();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 4c20f23..732b993 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_731349(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_731349(texture2d<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_731349(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_731349(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_731349(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_731349(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_731349(tint_symbol_2);
   return;
 }
 
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 d804641..7cf2fc2 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_731349 "textureStore_731349"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_731349 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_731349
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_731349
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_731349
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_731349
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 8269e63..e62a449 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_731349();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_731349();
diff --git a/test/tint/builtins/gen/var/textureStore/73a735.wgsl b/test/tint/builtins/gen/var/textureStore/73a735.wgsl
index bca6f97..e626498 100644
--- a/test/tint/builtins/gen/var/textureStore/73a735.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/73a735.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_73a735();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_73a735();
diff --git a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.dxc.hlsl
index e51820c..a6ca2e1 100644
--- a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_73a735();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_73a735();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.fxc.hlsl
index e51820c..a6ca2e1 100644
--- a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_73a735();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_73a735();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.glsl
index b11b0fb..69bf727 100644
--- a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_73a735() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_73a735();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.msl
index 6d96a1d..290d61c 100644
--- a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_73a735(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_73a735(texture2d_array<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_73a735(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_73a735(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_73a735(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_73a735(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_73a735(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.spvasm
index 7619bde..e28c627 100644
--- a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_73a735 "textureStore_73a735"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_73a735 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_73a735 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_73a735
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_73a735
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_73a735
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_73a735
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_73a735
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.wgsl
index 1bc2d642..11745cd 100644
--- a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_73a735();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_73a735();
diff --git a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl
index dad1811..18c0b9f 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_73bbbc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_73bbbc();
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 6ab1d5b..08c0743 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_73bbbc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_73bbbc();
   return;
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 6ab1d5b..08c0743 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_73bbbc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_73bbbc();
   return;
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 295f4f1..cdcd321 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_73bbbc() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_73bbbc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 df9a954..f697c58 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_73bbbc(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_73bbbc(texture2d<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_73bbbc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_73bbbc(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_73bbbc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_73bbbc(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_73bbbc(tint_symbol_2);
   return;
 }
 
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 d968e79..6484698 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_73bbbc "textureStore_73bbbc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_73bbbc = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_73bbbc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_73bbbc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_73bbbc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_73bbbc
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 a8c6754..1cb52d9 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_73bbbc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_73bbbc();
diff --git a/test/tint/builtins/gen/var/textureStore/74886f.wgsl b/test/tint/builtins/gen/var/textureStore/74886f.wgsl
index 7cd4df3..2506a2f 100644
--- a/test/tint/builtins/gen/var/textureStore/74886f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/74886f.wgsl
@@ -44,12 +44,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_74886f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_74886f();
diff --git a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.dxc.hlsl
index a451af2..96b770b 100644
--- a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_74886f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_74886f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.fxc.hlsl
index a451af2..96b770b 100644
--- a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_74886f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_74886f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.msl
index 371f45d..f6a4067 100644
--- a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_74886f(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_74886f(texture1d<float, access::write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_74886f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_74886f(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_74886f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_74886f(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_74886f(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.spvasm
index a5c917a..2b1a486 100644
--- a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_74886f "textureStore_74886f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_74886f = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_74886f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_74886f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_74886f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_74886f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_74886f
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_74886f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.wgsl
index c9ffb8c..27f3181 100644
--- a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.wgsl
@@ -8,12 +8,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_74886f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_74886f();
diff --git a/test/tint/builtins/gen/var/textureStore/751256.wgsl b/test/tint/builtins/gen/var/textureStore/751256.wgsl
index c7499e8..27d4e7c 100644
--- a/test/tint/builtins/gen/var/textureStore/751256.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/751256.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_751256();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_751256();
diff --git a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.dxc.hlsl
index 1b045ac..572ab2f 100644
--- a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_751256();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_751256();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.fxc.hlsl
index 1b045ac..572ab2f 100644
--- a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_751256();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_751256();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.glsl
index e5d9fd7..88fd570 100644
--- a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_751256() {
-  int arg_1 = 1;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_751256();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.msl
index 89f49fd..00a338f 100644
--- a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_751256(texture1d<uint, access::read_write> tint_symbol_1) {
+void textureStore_751256(texture1d<uint, access::read_write> tint_symbol) {
   int arg_1 = 1;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_751256(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_751256(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_751256(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_751256(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_751256(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.spvasm
index 72cce47..4c16b24 100644
--- a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_751256 "textureStore_751256"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %21 = OpConstantNull %int
+         %13 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_751256 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+         %19 = OpConstantNull %v4uint
+%textureStore_751256 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %int %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_751256
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_751256
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_751256
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_751256
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_751256
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.wgsl
index d7cc60c..7c99335 100644
--- a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_751256();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_751256();
diff --git a/test/tint/builtins/gen/var/textureStore/752da6.wgsl b/test/tint/builtins/gen/var/textureStore/752da6.wgsl
index 8651108..2054b14 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_752da6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_752da6();
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 ee6db6d..e3b2ff9 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_752da6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_752da6();
   return;
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 ee6db6d..e3b2ff9 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_752da6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_752da6();
   return;
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 a349587..04fb76e 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_752da6() {
-  ivec2 arg_1 = ivec2(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_752da6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 34cacd9..9957d78 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_752da6(texture2d<int, access::write> tint_symbol_1) {
+void textureStore_752da6(texture2d<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_752da6(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_752da6(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_752da6(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_752da6(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_752da6(tint_symbol_2);
   return;
 }
 
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 670bde4..c19883d 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_752da6 "textureStore_752da6"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %19 = OpConstantNull %v4int
+%textureStore_752da6 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_752da6
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_752da6
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_752da6
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_752da6
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 7f42960..463c2fa 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_752da6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_752da6();
diff --git a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl
index c0c809a..e0b613b 100644
--- a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_75bbd5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_75bbd5();
diff --git a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.dxc.hlsl
index 28bfd34..b4acff3 100644
--- a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_75bbd5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_75bbd5();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.fxc.hlsl
index 28bfd34..b4acff3 100644
--- a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_75bbd5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_75bbd5();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.msl
index d2c651d..10f62f7 100644
--- a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_75bbd5(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_75bbd5(texture2d_array<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_75bbd5(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_75bbd5(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_75bbd5(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_75bbd5(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_75bbd5(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.spvasm
index 7cab00e..d43823c 100644
--- a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_75bbd5 "textureStore_75bbd5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_75bbd5 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_75bbd5 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_75bbd5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_75bbd5
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_75bbd5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_75bbd5
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_75bbd5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.wgsl
index f741dd8..6b696a4 100644
--- a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_75bbd5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_75bbd5();
diff --git a/test/tint/builtins/gen/var/textureStore/76affd.wgsl b/test/tint/builtins/gen/var/textureStore/76affd.wgsl
index 545d7c6..83ab041 100644
--- a/test/tint/builtins/gen/var/textureStore/76affd.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/76affd.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_76affd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_76affd();
diff --git a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.dxc.hlsl
index 065434b..f4bc566 100644
--- a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_76affd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_76affd();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.fxc.hlsl
index 065434b..f4bc566 100644
--- a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_76affd();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_76affd();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.glsl
index 3626c38..afdbcb7 100644
--- a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_76affd() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_76affd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.msl
index 9656525..19df8cd 100644
--- a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_76affd(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_76affd(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_76affd(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_76affd(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_76affd(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_76affd(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_76affd(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.spvasm
index 28c7d52..f505516 100644
--- a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.spvasm
@@ -1,98 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_76affd "textureStore_76affd"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-%textureStore_76affd = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_76affd = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
-         %42 = OpVectorShuffle %v4float %41 %41 2 1 0 3
-               OpImageWrite %33 %40 %42
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+         %37 = OpVectorShuffle %v4float %36 %36 2 1 0 3
+               OpImageWrite %28 %35 %37
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_76affd
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_76affd
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_76affd
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_76affd
+%compute_main = OpFunction %void None %5
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_76affd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.wgsl
index 0f8fa5a..3842e84 100644
--- a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_76affd();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_76affd();
diff --git a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl
index a44de54..6139078 100644
--- a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7792fa();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7792fa();
diff --git a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.dxc.hlsl
index e27e997..cdd85e2 100644
--- a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7792fa();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7792fa();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.fxc.hlsl
index e27e997..cdd85e2 100644
--- a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7792fa();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7792fa();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.msl
index 65c4b41..90bf7a7 100644
--- a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7792fa(texture3d<int, access::read_write> tint_symbol_1) {
+void textureStore_7792fa(texture3d<int, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_7792fa(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7792fa(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7792fa(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7792fa(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7792fa(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.spvasm
index 5abedbd..332cae5 100644
--- a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7792fa "textureStore_7792fa"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %23 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_7792fa = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4int
+%textureStore_7792fa = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_7792fa
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_7792fa
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_7792fa
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_7792fa
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_7792fa
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.wgsl
index 6a8abeb..304b1bb 100644
--- a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7792fa();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7792fa();
diff --git a/test/tint/builtins/gen/var/textureStore/779d14.wgsl b/test/tint/builtins/gen/var/textureStore/779d14.wgsl
index 82ea13e..5b3b105 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_779d14();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_779d14();
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 0fdfe7a..8c4f695 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_779d14();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_779d14();
   return;
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 0fdfe7a..8c4f695 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_779d14();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_779d14();
   return;
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 9c4ed75..1d99855 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_779d14() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_779d14();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 cb582aa..c7971db 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_779d14(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_779d14(texture2d_array<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_779d14(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_779d14(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_779d14(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_779d14(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_779d14(tint_symbol_2);
   return;
 }
 
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 d686881..87762cb 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.spvasm
@@ -1,96 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_779d14 "textureStore_779d14"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %17 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpConstantNull %v4uint
+         %22 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_779d14 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_779d14 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2uint %arg_1
+         %27 = OpCompositeExtract %uint %26 0
+         %28 = OpCompositeExtract %uint %26 1
+         %29 = OpLoad %uint %arg_2
+         %30 = OpCompositeConstruct %v3uint %27 %28 %29
+         %31 = OpLoad %v4uint %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_779d14
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_779d14
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_779d14
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_779d14
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = 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 0af83b5..6120ded 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_779d14();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_779d14();
diff --git a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl
index 523822a..72bb6ad 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_77c0ae();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_77c0ae();
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 1df2728..d44be24 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_77c0ae();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_77c0ae();
   return;
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 1df2728..d44be24 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_77c0ae();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_77c0ae();
   return;
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 f65ff3d..3e71ce0 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_77c0ae() {
-  ivec2 arg_1 = ivec2(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_77c0ae();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 35bc870..06b87e5 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_77c0ae(texture2d<uint, access::write> tint_symbol_1) {
+void textureStore_77c0ae(texture2d<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_77c0ae(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_77c0ae(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_77c0ae(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_77c0ae(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_77c0ae(tint_symbol_2);
   return;
 }
 
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 53da4ac..2bb1c07 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_77c0ae "textureStore_77c0ae"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %21 = OpConstantNull %v4uint
+%textureStore_77c0ae = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_77c0ae
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_77c0ae
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_77c0ae
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_77c0ae
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 2bcbf7b..76b1434 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_77c0ae();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_77c0ae();
diff --git a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl
index 169be45..5c9a0f5 100644
--- a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7b8f86();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7b8f86();
diff --git a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.dxc.hlsl
index 36576aa..3e58ba7 100644
--- a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7b8f86();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7b8f86();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.fxc.hlsl
index 36576aa..3e58ba7 100644
--- a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7b8f86();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7b8f86();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.msl
index 7699a69..b692e95 100644
--- a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7b8f86(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_7b8f86(texture3d<float, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_7b8f86(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7b8f86(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7b8f86(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7b8f86(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7b8f86(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.spvasm
index 710cce0..445251b 100644
--- a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7b8f86 "textureStore_7b8f86"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_7b8f86 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_7b8f86 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_7b8f86
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_7b8f86
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_7b8f86
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_7b8f86
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_7b8f86
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.wgsl
index cf89b72..9617282 100644
--- a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7b8f86();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7b8f86();
diff --git a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl
index 65f8680..084788a 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7bb211();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7bb211();
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 8e97536..a55cabe0 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7bb211();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7bb211();
   return;
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 8e97536..a55cabe0 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7bb211();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7bb211();
   return;
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 6941c58..7d0a66f 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7bb211(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_7bb211(texture2d_array<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_7bb211(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7bb211(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7bb211(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7bb211(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7bb211(tint_symbol_2);
   return;
 }
 
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 afea97a..7363ae4 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.spvasm
@@ -1,100 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7bb211 "textureStore_7bb211"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_7bb211 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_7bb211 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_7bb211
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_7bb211
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_7bb211
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_7bb211
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 27b0ce8..04c317f 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7bb211();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7bb211();
diff --git a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl
index 7ba4bcf..102097b 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7cec8d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7cec8d();
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 291ce96..b0d73e1 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7cec8d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7cec8d();
   return;
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 291ce96..b0d73e1 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7cec8d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7cec8d();
   return;
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 b114477..7c7baa9 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_7cec8d() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_7cec8d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 450a31a..d2edad7 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7cec8d(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_7cec8d(texture2d_array<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_7cec8d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7cec8d(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7cec8d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7cec8d(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7cec8d(tint_symbol_2);
   return;
 }
 
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 83c7715..5adafed 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.spvasm
@@ -1,96 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7cec8d "textureStore_7cec8d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %17 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_7cec8d = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_7cec8d = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2int %arg_1
+         %27 = OpCompositeExtract %int %26 0
+         %28 = OpCompositeExtract %int %26 1
+         %29 = OpLoad %int %arg_2
+         %30 = OpCompositeConstruct %v3int %27 %28 %29
+         %31 = OpLoad %v4int %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_7cec8d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_7cec8d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_7cec8d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_7cec8d
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = 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 77a6f71..77747a9 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7cec8d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7cec8d();
diff --git a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl
index 3582610..33fac5b 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7cf6e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7cf6e7();
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 28d77ac..41d9814 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7cf6e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7cf6e7();
   return;
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 28d77ac..41d9814 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7cf6e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7cf6e7();
   return;
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 81a2a69..b3ebe3f 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_7cf6e7() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_7cf6e7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e69790b..bed04b0 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7cf6e7(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_7cf6e7(texture2d<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_7cf6e7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7cf6e7(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7cf6e7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7cf6e7(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7cf6e7(tint_symbol_2);
   return;
 }
 
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 78fb718..ac7cb15 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7cf6e7 "textureStore_7cf6e7"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_7cf6e7 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_7cf6e7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_7cf6e7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_7cf6e7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_7cf6e7
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 4300c7d..64b6d82 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7cf6e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7cf6e7();
diff --git a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl
index f9c5e2a..c39ea3c 100644
--- a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7d10e0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7d10e0();
diff --git a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.dxc.hlsl
index 3afdc88..809c601 100644
--- a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7d10e0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7d10e0();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.fxc.hlsl
index 3afdc88..809c601 100644
--- a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7d10e0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7d10e0();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.glsl
index cc3da94..002bf99 100644
--- a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_7d10e0() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_7d10e0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.msl
index f8fc40a..5cc4502 100644
--- a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7d10e0(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_7d10e0(texture1d<float, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_7d10e0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7d10e0(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7d10e0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7d10e0(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7d10e0(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.spvasm
index a77daf6..52f8d33 100644
--- a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.spvasm
@@ -1,82 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7d10e0 "textureStore_7d10e0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_7d10e0 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_7d10e0 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_7d10e0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_7d10e0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_7d10e0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_7d10e0
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_7d10e0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.wgsl
index ce474e0..54a7541 100644
--- a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7d10e0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7d10e0();
diff --git a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl
index 4b5b03b..78be457 100644
--- a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7dd042();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7dd042();
diff --git a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.dxc.hlsl
index 38b7116..0678f05 100644
--- a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7dd042();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7dd042();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.fxc.hlsl
index 38b7116..0678f05 100644
--- a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7dd042();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7dd042();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.glsl
index dc45d05..50c06e2 100644
--- a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_7dd042() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_7dd042();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.msl
index 0bae479..69df904 100644
--- a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7dd042(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_7dd042(texture2d_array<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_7dd042(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7dd042(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7dd042(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7dd042(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7dd042(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.spvasm
index a97b3dd..172347f 100644
--- a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.spvasm
@@ -1,95 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7dd042 "textureStore_7dd042"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %17 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_7dd042 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_7dd042 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2int %arg_1
+         %27 = OpCompositeExtract %int %26 0
+         %28 = OpCompositeExtract %int %26 1
+         %29 = OpLoad %int %arg_2
+         %30 = OpCompositeConstruct %v3int %27 %28 %29
+         %31 = OpLoad %v4int %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_7dd042
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_7dd042
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_7dd042
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_7dd042
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_7dd042
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.wgsl
index a01a366..4ff2451 100644
--- a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7dd042();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7dd042();
diff --git a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl
index 49ec1ad..186db67 100644
--- a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7e787a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7e787a();
diff --git a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.dxc.hlsl
index b8383ca..bc286f9 100644
--- a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7e787a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7e787a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.fxc.hlsl
index b8383ca..bc286f9 100644
--- a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7e787a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7e787a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.glsl
index 380f7c2..1cf40a1 100644
--- a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image3D arg_0;
-void textureStore_7e787a() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_7e787a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.msl
index 7881395..4be3f6e 100644
--- a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7e787a(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_7e787a(texture3d<float, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_7e787a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7e787a(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7e787a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7e787a(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7e787a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.spvasm
index ee7bcc6..9ece888 100644
--- a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7e787a "textureStore_7e787a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_7e787a = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_7e787a = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_7e787a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_7e787a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_7e787a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_7e787a
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_7e787a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.wgsl
index 8f3b8ce..8f68e56 100644
--- a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7e787a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7e787a();
diff --git a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl
index 8ae9453..4be01eb 100644
--- a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7f7fae();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7f7fae();
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 a1918f0..00b39e5 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7f7fae();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7f7fae();
   return;
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 a1918f0..00b39e5 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_7f7fae();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_7f7fae();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.glsl
index 75ef355..d14013e 100644
--- a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_7f7fae() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_7f7fae();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 9b457ce..51b514d 100644
--- a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_7f7fae(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_7f7fae(texture1d<float, access::write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_7f7fae(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_7f7fae(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_7f7fae(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_7f7fae(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_7f7fae(tint_symbol_2);
   return;
 }
 
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 2727ee4..2329947 100644
--- a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_7f7fae "textureStore_7f7fae"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = 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
+         %19 = OpConstantNull %v4float
+%textureStore_7f7fae = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_7f7fae
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_7f7fae
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_7f7fae
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_7f7fae
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 b36d9e0..08390a7 100644
--- a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7f7fae();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_7f7fae();
diff --git a/test/tint/builtins/gen/var/textureStore/803a10.wgsl b/test/tint/builtins/gen/var/textureStore/803a10.wgsl
index 131e4d0..6a11e19 100644
--- a/test/tint/builtins/gen/var/textureStore/803a10.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/803a10.wgsl
@@ -44,12 +44,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_803a10();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_803a10();
diff --git a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.dxc.hlsl
index 8db82d0..fd31657 100644
--- a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_803a10();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_803a10();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.fxc.hlsl
index 8db82d0..fd31657 100644
--- a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_803a10();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_803a10();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.msl
index bb33ede..d516ba6 100644
--- a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_803a10(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_803a10(texture3d<float, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_803a10(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_803a10(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_803a10(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_803a10(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_803a10(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.spvasm
index bf7eeea..e929cbe 100644
--- a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_803a10 "textureStore_803a10"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_803a10 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_803a10 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_803a10
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_803a10
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_803a10
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_803a10
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_803a10
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.wgsl
index fa6fafb..c20d98b 100644
--- a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.wgsl
@@ -8,12 +8,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_803a10();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_803a10();
diff --git a/test/tint/builtins/gen/var/textureStore/804942.wgsl b/test/tint/builtins/gen/var/textureStore/804942.wgsl
index b696988..3a352cc 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_804942();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_804942();
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 c8b5ccb..bbf869e 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_804942();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_804942();
   return;
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 c8b5ccb..bbf869e 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_804942();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_804942();
   return;
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 c969f58..0df7360 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_804942() {
-  ivec2 arg_1 = ivec2(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_804942();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 3d5af50..03bcba0 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_804942(texture2d<int, access::write> tint_symbol_1) {
+void textureStore_804942(texture2d<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_804942(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_804942(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_804942(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_804942(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_804942(tint_symbol_2);
   return;
 }
 
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 a48d006..2dc325c 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_804942 "textureStore_804942"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %19 = OpConstantNull %v4int
+%textureStore_804942 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_804942
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_804942
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_804942
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_804942
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 ab6fef7..2fc3f0f 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_804942();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_804942();
diff --git a/test/tint/builtins/gen/var/textureStore/805dae.wgsl b/test/tint/builtins/gen/var/textureStore/805dae.wgsl
index 99edb93..ac019a6 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_805dae();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_805dae();
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 b647bb4..a0aedca 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_805dae();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_805dae();
   return;
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 b647bb4..a0aedca 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_805dae();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_805dae();
   return;
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 812eacc..f03df67 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_805dae() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_805dae();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 a516aaf..f4305c4 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_805dae(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_805dae(texture2d<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_805dae(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_805dae(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_805dae(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_805dae(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_805dae(tint_symbol_2);
   return;
 }
 
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 9dc18fa..f0a5dc0 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_805dae "textureStore_805dae"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_805dae = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_805dae
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_805dae
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_805dae
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_805dae
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 4c2b4c3..baecd3c 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_805dae();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_805dae();
diff --git a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl
index c1a543f..b6b397a 100644
--- a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_80bf1d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_80bf1d();
diff --git a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.dxc.hlsl
index a3b4098..63db0be 100644
--- a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_80bf1d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_80bf1d();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.fxc.hlsl
index a3b4098..63db0be 100644
--- a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_80bf1d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_80bf1d();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.msl
index 0867b7d..045aa54 100644
--- a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_80bf1d(texture2d<int, access::read_write> tint_symbol_1) {
+void textureStore_80bf1d(texture2d<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_80bf1d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_80bf1d(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_80bf1d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_80bf1d(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_80bf1d(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.spvasm
index 9294ad9..8cd8cb5 100644
--- a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_80bf1d "textureStore_80bf1d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_80bf1d = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4int
+%textureStore_80bf1d = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_80bf1d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_80bf1d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_80bf1d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_80bf1d
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_80bf1d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.wgsl
index 23b9879..1b82985 100644
--- a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_80bf1d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_80bf1d();
diff --git a/test/tint/builtins/gen/var/textureStore/818df6.wgsl b/test/tint/builtins/gen/var/textureStore/818df6.wgsl
index f41cf75..3ed8ff4 100644
--- a/test/tint/builtins/gen/var/textureStore/818df6.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/818df6.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_818df6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_818df6();
diff --git a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.dxc.hlsl
index 6b6f22b..f9091f4 100644
--- a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_818df6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_818df6();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.fxc.hlsl
index 6b6f22b..f9091f4 100644
--- a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_818df6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_818df6();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.glsl
index a616fa2..0f31738 100644
--- a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image3D arg_0;
-void textureStore_818df6() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_818df6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.msl
index 20c4c0b..e637528 100644
--- a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_818df6(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_818df6(texture3d<float, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_818df6(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_818df6(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_818df6(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_818df6(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_818df6(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.spvasm
index 04b0bfa..eec7499 100644
--- a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_818df6 "textureStore_818df6"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_818df6 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_818df6 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_818df6
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_818df6
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_818df6
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_818df6
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_818df6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.wgsl
index ad84389..0cd279b 100644
--- a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_818df6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_818df6();
diff --git a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl
index 21c35eb..1e07124 100644
--- a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_81ae31();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_81ae31();
diff --git a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.dxc.hlsl
index f517469..b6100fd 100644
--- a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_81ae31();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_81ae31();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.fxc.hlsl
index f517469..b6100fd 100644
--- a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_81ae31();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_81ae31();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.glsl
index d97d111..2ba80a0 100644
--- a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2DArray arg_0;
-void textureStore_81ae31() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_81ae31();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.msl
index e3d817d..cd45d85 100644
--- a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_81ae31(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_81ae31(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_81ae31(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_81ae31(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_81ae31(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_81ae31(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_81ae31(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.spvasm
index bc711d4..f4b8bbd 100644
--- a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.spvasm
@@ -1,93 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_81ae31 "textureStore_81ae31"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
-%textureStore_81ae31 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_81ae31 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_81ae31
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_81ae31
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_81ae31
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_81ae31
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_81ae31
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.wgsl
index 6dcf245..b9c9a08 100644
--- a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_81ae31();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_81ae31();
diff --git a/test/tint/builtins/gen/var/textureStore/820272.wgsl b/test/tint/builtins/gen/var/textureStore/820272.wgsl
index 121500b..2449602 100644
--- a/test/tint/builtins/gen/var/textureStore/820272.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/820272.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_820272();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_820272();
diff --git a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.dxc.hlsl
index b9c0c30..6c3f968 100644
--- a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_820272();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_820272();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.fxc.hlsl
index b9c0c30..6c3f968 100644
--- a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_820272();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_820272();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.msl
index 376cea6..d9e9aff 100644
--- a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_820272(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_820272(texture2d_array<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_820272(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_820272(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_820272(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_820272(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_820272(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.spvasm
index a7acb14..a910245 100644
--- a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_820272 "textureStore_820272"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_820272 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_820272 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_820272
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_820272
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_820272
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_820272
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_820272
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.wgsl
index 3672d53..675faa2 100644
--- a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_820272();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_820272();
diff --git a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl
index e770e84..55f822b 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_83bcc1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_83bcc1();
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 65cc0eb..bb82c25 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_83bcc1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_83bcc1();
   return;
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 65cc0eb..bb82c25 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_83bcc1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_83bcc1();
   return;
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 d1016d0..c95372e 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_83bcc1(texture1d<uint, access::write> tint_symbol_1) {
+void textureStore_83bcc1(texture1d<uint, access::write> tint_symbol) {
   int arg_1 = 1;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_83bcc1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_83bcc1(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_83bcc1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_83bcc1(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_83bcc1(tint_symbol_2);
   return;
 }
 
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 8bd3f62..87649db 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_83bcc1 "textureStore_83bcc1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %21 = OpConstantNull %int
+         %13 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %27
+         %19 = OpConstantNull %v4uint
+%textureStore_83bcc1 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %int %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_83bcc1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_83bcc1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_83bcc1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_83bcc1
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 eec57a4..eb2ab24 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_83bcc1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_83bcc1();
diff --git a/test/tint/builtins/gen/var/textureStore/84d435.wgsl b/test/tint/builtins/gen/var/textureStore/84d435.wgsl
index 0965c12..723cda7 100644
--- a/test/tint/builtins/gen/var/textureStore/84d435.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/84d435.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_84d435();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_84d435();
diff --git a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.dxc.hlsl
index 413c24d..54e9738 100644
--- a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_84d435();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_84d435();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.fxc.hlsl
index 413c24d..54e9738 100644
--- a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_84d435();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_84d435();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.msl
index 45a6f5a..7948b77 100644
--- a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_84d435(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_84d435(texture2d_array<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_84d435(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_84d435(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_84d435(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_84d435(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_84d435(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.spvasm
index 0f21799..f2615b1 100644
--- a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.spvasm
@@ -1,96 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_84d435 "textureStore_84d435"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %17 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_84d435 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_84d435 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2int %arg_1
+         %27 = OpCompositeExtract %int %26 0
+         %28 = OpCompositeExtract %int %26 1
+         %29 = OpLoad %int %arg_2
+         %30 = OpCompositeConstruct %v3int %27 %28 %29
+         %31 = OpLoad %v4int %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_84d435
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_84d435
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_84d435
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_84d435
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_84d435
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.wgsl
index d269b0c..2770597 100644
--- a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_84d435();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_84d435();
diff --git a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl
index ecd6c89..391fc6f 100644
--- a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_84f4f4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_84f4f4();
diff --git a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.dxc.hlsl
index 7d1fd0c..c6814b4 100644
--- a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_84f4f4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_84f4f4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.fxc.hlsl
index 7d1fd0c..c6814b4 100644
--- a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_84f4f4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_84f4f4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.glsl
index ab1d6de..8be60f1 100644
--- a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_84f4f4() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_84f4f4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.msl
index 0f385a4..ae9ddd2 100644
--- a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_84f4f4(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_84f4f4(texture2d_array<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_84f4f4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_84f4f4(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_84f4f4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_84f4f4(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_84f4f4(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.spvasm
index d59277d..ed3f9e4 100644
--- a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_84f4f4 "textureStore_84f4f4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_84f4f4 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_84f4f4 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_84f4f4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_84f4f4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_84f4f4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_84f4f4
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_84f4f4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.wgsl
index 274ebdf..031aaec 100644
--- a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_84f4f4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_84f4f4();
diff --git a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl
index 5ded353..00650fb 100644
--- a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8676c9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8676c9();
diff --git a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.dxc.hlsl
index b449e608dc..a8a3319 100644
--- a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8676c9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8676c9();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.fxc.hlsl
index b449e608dc..a8a3319 100644
--- a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8676c9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8676c9();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.glsl
index 2bdc8ad..5c31806 100644
--- a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2D arg_0;
-void textureStore_8676c9() {
-  int arg_1 = 1;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_8676c9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.msl
index 68dfb6c..1391c43 100644
--- a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8676c9(texture1d<uint, access::read_write> tint_symbol_1) {
+void textureStore_8676c9(texture1d<uint, access::read_write> tint_symbol) {
   int arg_1 = 1;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_8676c9(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8676c9(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8676c9(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8676c9(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8676c9(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.spvasm
index cd4a550..49d2a71 100644
--- a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8676c9 "textureStore_8676c9"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %21 = OpConstantNull %int
+         %13 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_8676c9 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+         %19 = OpConstantNull %v4uint
+%textureStore_8676c9 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %int %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_8676c9
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_8676c9
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_8676c9
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_8676c9
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_8676c9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.wgsl
index ebb86e2..1442e9f 100644
--- a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8676c9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8676c9();
diff --git a/test/tint/builtins/gen/var/textureStore/86f713.wgsl b/test/tint/builtins/gen/var/textureStore/86f713.wgsl
index 653e3fe..3b7fa0d 100644
--- a/test/tint/builtins/gen/var/textureStore/86f713.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/86f713.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_86f713();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_86f713();
diff --git a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.dxc.hlsl
index 5033d29..d15279e 100644
--- a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_86f713();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_86f713();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.fxc.hlsl
index 5033d29..d15279e 100644
--- a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_86f713();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_86f713();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.glsl
index ab2f4c2..65f26d5 100644
--- a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage3D arg_0;
-void textureStore_86f713() {
-  ivec3 arg_1 = ivec3(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_86f713();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.msl
index 784982a..5a4fb10 100644
--- a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_86f713(texture3d<int, access::read_write> tint_symbol_1) {
+void textureStore_86f713(texture3d<int, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_86f713(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_86f713(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_86f713(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_86f713(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_86f713(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.spvasm
index 275e1cd..f59cf81 100644
--- a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_86f713 "textureStore_86f713"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %11 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %14 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_86f713 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4int
+%textureStore_86f713 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_86f713
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_86f713
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_86f713
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_86f713
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_86f713
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.wgsl
index fb8726e..03bfac0 100644
--- a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_86f713();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_86f713();
diff --git a/test/tint/builtins/gen/var/textureStore/872747.wgsl b/test/tint/builtins/gen/var/textureStore/872747.wgsl
index 625dc47..ac76149 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_872747();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_872747();
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 01ef67b..16d97b1 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_872747();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_872747();
   return;
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 01ef67b..16d97b1 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_872747();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_872747();
   return;
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 0306531..49882d5 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_872747(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_872747(texture1d<float, access::write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_872747(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_872747(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_872747(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_872747(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_872747(tint_symbol_2);
   return;
 }
 
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 8d8d31a..2b3d537 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_872747 "textureStore_872747"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = 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
+         %19 = OpConstantNull %v4float
+%textureStore_872747 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_872747
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_872747
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_872747
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_872747
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 32ed1eb..e0d4b57 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_872747();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_872747();
diff --git a/test/tint/builtins/gen/var/textureStore/877c92.wgsl b/test/tint/builtins/gen/var/textureStore/877c92.wgsl
index baf7782..d5f4751 100644
--- a/test/tint/builtins/gen/var/textureStore/877c92.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/877c92.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_877c92();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_877c92();
diff --git a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.dxc.hlsl
index 206c902..6be436e 100644
--- a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_877c92();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_877c92();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.fxc.hlsl
index 206c902..6be436e 100644
--- a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_877c92();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_877c92();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.glsl
index 57f0baf..c78dba4 100644
--- a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_877c92() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_877c92();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.msl
index 33013a8..762504b 100644
--- a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_877c92(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_877c92(texture1d<float, access::read_write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_877c92(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_877c92(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_877c92(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_877c92(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_877c92(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.spvasm
index 71895e6..8365b65 100644
--- a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.spvasm
@@ -1,82 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_877c92 "textureStore_877c92"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_877c92 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_877c92 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_877c92
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_877c92
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_877c92
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_877c92
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_877c92
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.wgsl
index 56b7de2..c745f55 100644
--- a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_877c92();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_877c92();
diff --git a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl
index 954cb5d..008cbdb 100644
--- a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8815b1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8815b1();
diff --git a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.dxc.hlsl
index 10d3298..5dee68f 100644
--- a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8815b1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8815b1();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.fxc.hlsl
index 10d3298..5dee68f 100644
--- a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8815b1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8815b1();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.glsl
index 3ec00da..1060cda 100644
--- a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_8815b1() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_8815b1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.msl
index 07a7742..98c579e 100644
--- a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8815b1(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_8815b1(texture2d_array<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_8815b1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8815b1(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8815b1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8815b1(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8815b1(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.spvasm
index d90ee4d..e028fea 100644
--- a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8815b1 "textureStore_8815b1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_8815b1 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_8815b1 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_8815b1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_8815b1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_8815b1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_8815b1
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_8815b1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.wgsl
index c642d45..8d0bee0 100644
--- a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8815b1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8815b1();
diff --git a/test/tint/builtins/gen/var/textureStore/885921.wgsl b/test/tint/builtins/gen/var/textureStore/885921.wgsl
index 12f16b3..2f29200 100644
--- a/test/tint/builtins/gen/var/textureStore/885921.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/885921.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_885921();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_885921();
diff --git a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.dxc.hlsl
index 25b1ce4..3107dbf 100644
--- a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_885921();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_885921();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.fxc.hlsl
index 25b1ce4..3107dbf 100644
--- a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_885921();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_885921();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.glsl
index b8d846b..3485a74 100644
--- a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_885921() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_885921();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.msl
index e3cdc74..9d5bba1 100644
--- a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_885921(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_885921(texture3d<float, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_885921(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_885921(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_885921(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_885921(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_885921(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.spvasm
index ec767a1..ce1362b 100644
--- a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_885921 "textureStore_885921"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_885921 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_885921 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_885921
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_885921
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_885921
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_885921
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_885921
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.wgsl
index afa9317..1ac7ced 100644
--- a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_885921();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_885921();
diff --git a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl
index 1c75e8e..7137e11 100644
--- a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_88ce7e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_88ce7e();
diff --git a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.dxc.hlsl
index 718c65e..02330b6 100644
--- a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_88ce7e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_88ce7e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.fxc.hlsl
index 718c65e..02330b6 100644
--- a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_88ce7e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_88ce7e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.glsl
index b14cc57..56336af 100644
--- a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage3D arg_0;
-void textureStore_88ce7e() {
-  ivec3 arg_1 = ivec3(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_88ce7e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.msl
index 20c2ee8..86f7ee8 100644
--- a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_88ce7e(texture3d<int, access::read_write> tint_symbol_1) {
+void textureStore_88ce7e(texture3d<int, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_88ce7e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_88ce7e(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_88ce7e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_88ce7e(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_88ce7e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.spvasm
index 86f7c7b..7df3465 100644
--- a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_88ce7e "textureStore_88ce7e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %11 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %14 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_88ce7e = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4int
+%textureStore_88ce7e = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_88ce7e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_88ce7e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_88ce7e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_88ce7e
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_88ce7e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.wgsl
index 1371f93..360a27c 100644
--- a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_88ce7e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_88ce7e();
diff --git a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl
index 9fdc212..eb07450 100644
--- a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a16b0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a16b0();
diff --git a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.dxc.hlsl
index 7778277..17af8fc 100644
--- a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a16b0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a16b0();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.fxc.hlsl
index 7778277..17af8fc 100644
--- a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a16b0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a16b0();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.glsl
index cc971ce..a31a371 100644
--- a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2DArray arg_0;
-void textureStore_8a16b0() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_8a16b0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.msl
index cf8f5b9..b3decea 100644
--- a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8a16b0(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_8a16b0(texture2d_array<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_8a16b0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8a16b0(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8a16b0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8a16b0(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8a16b0(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.spvasm
index c916935..482dad2 100644
--- a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.spvasm
@@ -1,97 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8a16b0 "textureStore_8a16b0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %26 = OpConstantNull %int
+         %18 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_8a16b0 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_8a16b0 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_8a16b0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_8a16b0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_8a16b0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_8a16b0
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_8a16b0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.wgsl
index 29457e0..17f291e 100644
--- a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a16b0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a16b0();
diff --git a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl
index 092b41f..60ce12c 100644
--- a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a46ff();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a46ff();
diff --git a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.dxc.hlsl
index 0529b10..1ede5b9 100644
--- a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a46ff();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a46ff();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.fxc.hlsl
index 0529b10..1ede5b9 100644
--- a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a46ff();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a46ff();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.glsl
index f63b182..838c1d9 100644
--- a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_8a46ff() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_8a46ff();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.msl
index 6412121..6a77401 100644
--- a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8a46ff(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_8a46ff(texture2d<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_8a46ff(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8a46ff(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8a46ff(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8a46ff(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8a46ff(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.spvasm
index 54f7b680b..8083c05 100644
--- a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8a46ff "textureStore_8a46ff"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_8a46ff = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_8a46ff = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8a46ff
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_8a46ff
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_8a46ff
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_8a46ff
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_8a46ff
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.wgsl
index 20a8aa0..aa29b7c 100644
--- a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a46ff();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a46ff();
diff --git a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl
index 31ae8c6e..4d08e9b 100644
--- a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a85b9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a85b9();
diff --git a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.dxc.hlsl
index df0d465..ae6df77 100644
--- a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a85b9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a85b9();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.fxc.hlsl
index df0d465..ae6df77 100644
--- a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a85b9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a85b9();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.glsl
index 4d99234..43e9683 100644
--- a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_8a85b9() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_8a85b9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.msl
index 8488db1..d51e8d9 100644
--- a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8a85b9(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_8a85b9(texture2d_array<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_8a85b9(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8a85b9(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8a85b9(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8a85b9(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8a85b9(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.spvasm
index d55a66e..8aa7dba 100644
--- a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.spvasm
@@ -1,95 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8a85b9 "textureStore_8a85b9"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %17 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_8a85b9 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_8a85b9 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2int %arg_1
+         %27 = OpCompositeExtract %int %26 0
+         %28 = OpCompositeExtract %int %26 1
+         %29 = OpLoad %int %arg_2
+         %30 = OpCompositeConstruct %v3int %27 %28 %29
+         %31 = OpLoad %v4int %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_8a85b9
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_8a85b9
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_8a85b9
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_8a85b9
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_8a85b9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.wgsl
index 9b98168..06b8c2c 100644
--- a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a85b9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a85b9();
diff --git a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl
index 302a5a5..51478ec 100644
--- a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a8681();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a8681();
diff --git a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.dxc.hlsl
index 51a0223..9257222 100644
--- a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a8681();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a8681();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.fxc.hlsl
index 51a0223..9257222 100644
--- a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8a8681();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8a8681();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.msl
index b4b38e0..a045239 100644
--- a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8a8681(texture2d<uint, access::read_write> tint_symbol_1) {
+void textureStore_8a8681(texture2d<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_8a8681(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8a8681(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8a8681(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8a8681(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8a8681(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.spvasm
index 87dcdce..3bdbac1 100644
--- a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8a8681 "textureStore_8a8681"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_8a8681 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4uint
+%textureStore_8a8681 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_8a8681
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_8a8681
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_8a8681
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_8a8681
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_8a8681
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.wgsl
index 3114e97..f3723df 100644
--- a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8a8681();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8a8681();
diff --git a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl
index 0f46f4a..20f73a01 100644
--- a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ae0bc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ae0bc();
diff --git a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.dxc.hlsl
index 3f7f68b..4e9fdb9 100644
--- a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ae0bc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ae0bc();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.fxc.hlsl
index 3f7f68b..4e9fdb9 100644
--- a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ae0bc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ae0bc();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.glsl
index 7eb558e..6c7e699 100644
--- a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_8ae0bc() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_8ae0bc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.msl
index 7770f5d..325f509 100644
--- a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8ae0bc(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_8ae0bc(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_8ae0bc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8ae0bc(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8ae0bc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8ae0bc(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8ae0bc(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.spvasm
index 36012d1..358e058 100644
--- a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.spvasm
@@ -1,96 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8ae0bc "textureStore_8ae0bc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-%textureStore_8ae0bc = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_8ae0bc = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_8ae0bc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_8ae0bc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_8ae0bc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_8ae0bc
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_8ae0bc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.wgsl
index 977e18a..5a0958d 100644
--- a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ae0bc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ae0bc();
diff --git a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl
index 0ff864b..b6851f6 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8b9310();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8b9310();
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 af6ed31..b3615eb 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8b9310();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8b9310();
   return;
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 af6ed31..b3615eb 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8b9310();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8b9310();
   return;
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 e0435e1..67b0bae 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image3D arg_0;
-void textureStore_8b9310() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_8b9310();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 43ca7a4..2a98f1c 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8b9310(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_8b9310(texture3d<float, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_8b9310(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8b9310(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8b9310(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8b9310(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8b9310(tint_symbol_2);
   return;
 }
 
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 c920206..25e8b4a 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8b9310 "textureStore_8b9310"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_8b9310 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8b9310
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_8b9310
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_8b9310
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_8b9310
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 aa74595..3764e6f 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8b9310();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8b9310();
diff --git a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl
index 9a58463..9b3bed1 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8bb287();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8bb287();
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 bf88afb..0a31ed7 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8bb287();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8bb287();
   return;
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 bf88afb..0a31ed7 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8bb287();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8bb287();
   return;
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 433dd93..cdf287d 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_8bb287() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_8bb287();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 576d3df..8d02af7 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8bb287(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_8bb287(texture2d_array<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_8bb287(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8bb287(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8bb287(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8bb287(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8bb287(tint_symbol_2);
   return;
 }
 
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 e21dcae..adbaa7c 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8bb287 "textureStore_8bb287"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %26 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_8bb287 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_8bb287 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_8bb287
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_8bb287
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_8bb287
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_8bb287
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 11d1d8f..0e28fa4 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8bb287();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8bb287();
diff --git a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl
index ed7f7e0..944bc21 100644
--- a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8c76e9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8c76e9();
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 05cdb20..ecdd397 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8c76e9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8c76e9();
   return;
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 05cdb20..ecdd397 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8c76e9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8c76e9();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.glsl
index db425ec..1bb307cb 100644
--- a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_8c76e9() {
-  uint arg_1 = 1u;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_8c76e9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 08136cd..e20bc99 100644
--- a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8c76e9(texture1d<int, access::write> tint_symbol_1) {
+void textureStore_8c76e9(texture1d<int, access::write> tint_symbol) {
   uint arg_1 = 1u;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_8c76e9(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8c76e9(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8c76e9(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8c76e9(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8c76e9(tint_symbol_2);
   return;
 }
 
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 d1b88d3..909244f 100644
--- a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8c76e9 "textureStore_8c76e9"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %21 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %27
+         %19 = OpConstantNull %v4int
+%textureStore_8c76e9 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %uint %arg_1
-         %31 = OpLoad %v4int %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_8c76e9
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_8c76e9
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_8c76e9
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_8c76e9
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 8b5ce79..6256b75 100644
--- a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8c76e9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8c76e9();
diff --git a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl
index 5a08e30..e35303b 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl
@@ -44,12 +44,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8cd611();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8cd611();
diff --git a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.dxc.hlsl
index 7db281b..f5a59b5 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8cd611();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8cd611();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.fxc.hlsl
index 7db281b..f5a59b5 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8cd611();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8cd611();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.msl
index bcc117f..9818d13 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8cd611(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_8cd611(texture3d<float, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_8cd611(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8cd611(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8cd611(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8cd611(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8cd611(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.spvasm
index 3e57d82..051f9f4 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.spvasm
@@ -1,85 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8cd611 "textureStore_8cd611"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_8cd611 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_8cd611 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8cd611
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_8cd611
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_8cd611
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_8cd611
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_8cd611
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.wgsl
index e22b597..0b2827a 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.wgsl
@@ -8,12 +8,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8cd611();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8cd611();
diff --git a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl
index 28931a0..7e33b01 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8cd841();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8cd841();
diff --git a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.dxc.hlsl
index 175636b..cd0d3a0 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8cd841();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8cd841();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.fxc.hlsl
index 175636b..cd0d3a0 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8cd841();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8cd841();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.glsl
index db7d224..f40a71b 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2DArray arg_0;
-void textureStore_8cd841() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_8cd841();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.msl
index 4a2d87f..048c26f 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8cd841(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_8cd841(texture2d_array<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_8cd841(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8cd841(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8cd841(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8cd841(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8cd841(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.spvasm
index 3e0c6b6..08ca31a 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8cd841 "textureStore_8cd841"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_8cd841 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_8cd841 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_8cd841
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_8cd841
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_8cd841
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_8cd841
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_8cd841
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.wgsl
index d8960bd..59e085f 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8cd841();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8cd841();
diff --git a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl
index 6a594f2..4e09446 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8dc54f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8dc54f();
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 3e76e18..420b7d5 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8dc54f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8dc54f();
   return;
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 3e76e18..420b7d5 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8dc54f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8dc54f();
   return;
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 7637a04..5e5db1e 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_8dc54f() {
-  uvec2 arg_1 = uvec2(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_8dc54f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 4655fad..3aee9cc 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8dc54f(texture2d<uint, access::write> tint_symbol_1) {
+void textureStore_8dc54f(texture2d<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_8dc54f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8dc54f(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8dc54f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8dc54f(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8dc54f(tint_symbol_2);
   return;
 }
 
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 5f5ada3..0b1033f 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8dc54f "textureStore_8dc54f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %19 = OpConstantNull %v4uint
+%textureStore_8dc54f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_8dc54f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_8dc54f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_8dc54f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_8dc54f
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 a655b36..d6ca526 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8dc54f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8dc54f();
diff --git a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl
index 345663b..2466a47 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8e0479();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8e0479();
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 654930d..62d8933 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8e0479();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8e0479();
   return;
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 654930d..62d8933 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8e0479();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8e0479();
   return;
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 4995446..2fa6b6c 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_8e0479() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_8e0479();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 9634e28..a6ae561 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8e0479(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_8e0479(texture2d_array<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_8e0479(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8e0479(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8e0479(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8e0479(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8e0479(tint_symbol_2);
   return;
 }
 
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 e891980..1e89546 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8e0479 "textureStore_8e0479"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %26 = OpConstantNull %int
+         %18 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_8e0479 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_8e0479 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_8e0479
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_8e0479
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_8e0479
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_8e0479
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 bc56661..6b48004 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8e0479();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8e0479();
diff --git a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl
index 5134f7e..7a510e6 100644
--- a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ebdc9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ebdc9();
diff --git a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.dxc.hlsl
index 8829fb6..6f2f717 100644
--- a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ebdc9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ebdc9();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.fxc.hlsl
index 8829fb6..6f2f717 100644
--- a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ebdc9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ebdc9();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.glsl
index 8299205..0cfa106 100644
--- a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_8ebdc9() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_8ebdc9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.msl
index 75a0b06..346d2fa 100644
--- a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8ebdc9(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_8ebdc9(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_8ebdc9(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8ebdc9(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8ebdc9(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8ebdc9(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8ebdc9(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.spvasm
index d28bd08..491c444 100644
--- a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.spvasm
@@ -1,93 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8ebdc9 "textureStore_8ebdc9"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
-%textureStore_8ebdc9 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_8ebdc9 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_8ebdc9
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_8ebdc9
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_8ebdc9
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_8ebdc9
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_8ebdc9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.wgsl
index 1da34b3..13be562 100644
--- a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ebdc9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ebdc9();
diff --git a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl
index 28a49ad..133fce4 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ed9f8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ed9f8();
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 3bdb790..30500c3 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ed9f8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ed9f8();
   return;
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 3bdb790..30500c3 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ed9f8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ed9f8();
   return;
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 52d203f..30d0023 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_8ed9f8() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_8ed9f8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 ee96051..4b613ef 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8ed9f8(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_8ed9f8(texture3d<float, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_8ed9f8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8ed9f8(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8ed9f8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8ed9f8(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8ed9f8(tint_symbol_2);
   return;
 }
 
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 2ee7bf3..3140ae3 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8ed9f8 "textureStore_8ed9f8"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_8ed9f8 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8ed9f8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_8ed9f8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_8ed9f8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_8ed9f8
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 77a7d50..e49866b 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ed9f8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ed9f8();
diff --git a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl
index 6df236a..f6acd1e 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8f71a1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8f71a1();
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 96e80d6..7634c0e 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8f71a1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8f71a1();
   return;
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 96e80d6..7634c0e 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8f71a1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8f71a1();
   return;
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 25b740d..09ce85f 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage3D arg_0;
-void textureStore_8f71a1() {
-  ivec3 arg_1 = ivec3(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_8f71a1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 b3277b9..820d811 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8f71a1(texture3d<int, access::write> tint_symbol_1) {
+void textureStore_8f71a1(texture3d<int, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_8f71a1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8f71a1(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8f71a1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8f71a1(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8f71a1(tint_symbol_2);
   return;
 }
 
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 2b06178..35d0006 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8f71a1 "textureStore_8f71a1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %11 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %14 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %19 = OpConstantNull %v4int
+%textureStore_8f71a1 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_8f71a1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_8f71a1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_8f71a1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_8f71a1
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 ff0e20c..327d776 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8f71a1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8f71a1();
diff --git a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl
index 30884c5..bc856f7 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ff674();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ff674();
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 401102a..be637ca 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ff674();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ff674();
   return;
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 401102a..be637ca 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_8ff674();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_8ff674();
   return;
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 d44e85d..472010d 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_8ff674() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_8ff674();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e7e60b1..fbaf0ab 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_8ff674(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_8ff674(texture2d_array<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_8ff674(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_8ff674(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_8ff674(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_8ff674(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_8ff674(tint_symbol_2);
   return;
 }
 
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 ef45f7e..52209fa 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_8ff674 "textureStore_8ff674"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_8ff674 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_8ff674 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_8ff674
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_8ff674
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_8ff674
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_8ff674
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 405abd5..406cbe2 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8ff674();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_8ff674();
diff --git a/test/tint/builtins/gen/var/textureStore/90960e.wgsl b/test/tint/builtins/gen/var/textureStore/90960e.wgsl
index 1b369b0..9fe326d 100644
--- a/test/tint/builtins/gen/var/textureStore/90960e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/90960e.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_90960e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_90960e();
diff --git a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.dxc.hlsl
index 6f855b2f..a5b8c50 100644
--- a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_90960e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_90960e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.fxc.hlsl
index 6f855b2f..a5b8c50 100644
--- a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_90960e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_90960e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.glsl
index 1303a16..a1e5ec3 100644
--- a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_90960e() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_90960e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.msl
index 6383dcd..2e260a3 100644
--- a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_90960e(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_90960e(texture1d<float, access::read_write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_90960e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_90960e(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_90960e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_90960e(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_90960e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.spvasm
index c35032b..c7f919e 100644
--- a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.spvasm
@@ -1,82 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_90960e "textureStore_90960e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_90960e = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_90960e = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_90960e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_90960e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_90960e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_90960e
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_90960e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.wgsl
index 0dd06b9..f741cbc 100644
--- a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_90960e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_90960e();
diff --git a/test/tint/builtins/gen/var/textureStore/90a553.wgsl b/test/tint/builtins/gen/var/textureStore/90a553.wgsl
index c98ab39..b0830ce 100644
--- a/test/tint/builtins/gen/var/textureStore/90a553.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/90a553.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_90a553();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_90a553();
diff --git a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.dxc.hlsl
index ef9e28a..1c3921c 100644
--- a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_90a553();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_90a553();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.fxc.hlsl
index ef9e28a..1c3921c 100644
--- a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_90a553();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_90a553();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.glsl
index 5bd899f..3ca8788 100644
--- a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_90a553() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_90a553();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.msl
index 2ba0264..38b7f64 100644
--- a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_90a553(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_90a553(texture2d_array<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_90a553(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_90a553(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_90a553(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_90a553(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_90a553(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.spvasm
index f9e16ad..d1c357e 100644
--- a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_90a553 "textureStore_90a553"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_90a553 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_90a553 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_90a553
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_90a553
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_90a553
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_90a553
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_90a553
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.wgsl
index 72c9885..a51fbe1 100644
--- a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_90a553();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_90a553();
diff --git a/test/tint/builtins/gen/var/textureStore/958353.wgsl b/test/tint/builtins/gen/var/textureStore/958353.wgsl
index 310f60c..a82a871 100644
--- a/test/tint/builtins/gen/var/textureStore/958353.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/958353.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_958353();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_958353();
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 63bd9eb..77ae533 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_958353();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_958353();
   return;
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 63bd9eb..77ae533 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_958353();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_958353();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.glsl
index 191931c..493b2f0 100644
--- a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_958353() {
-  uint arg_1 = 1u;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_958353();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 d1fcf04..3ee1f8a 100644
--- a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_958353(texture1d<int, access::write> tint_symbol_1) {
+void textureStore_958353(texture1d<int, access::write> tint_symbol) {
   uint arg_1 = 1u;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_958353(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_958353(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_958353(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_958353(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_958353(tint_symbol_2);
   return;
 }
 
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 41534d4..41abe0d 100644
--- a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_958353 "textureStore_958353"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %21 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %27
+         %19 = OpConstantNull %v4int
+%textureStore_958353 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %uint %arg_1
-         %31 = OpLoad %v4int %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_958353
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_958353
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_958353
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_958353
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 436e67b..1e0b4b8 100644
--- a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_958353();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_958353();
diff --git a/test/tint/builtins/gen/var/textureStore/959d94.wgsl b/test/tint/builtins/gen/var/textureStore/959d94.wgsl
index b40ee9f..0a661ad 100644
--- a/test/tint/builtins/gen/var/textureStore/959d94.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/959d94.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_959d94();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_959d94();
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 b445fb2..7c5f027 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_959d94();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_959d94();
   return;
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 b445fb2..7c5f027 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_959d94();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_959d94();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.glsl
index cee8f37..71839fe 100644
--- a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_959d94() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_959d94();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 515eff2..d235189 100644
--- a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_959d94(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_959d94(texture1d<float, access::write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_959d94(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_959d94(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_959d94(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_959d94(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_959d94(tint_symbol_2);
   return;
 }
 
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 f40074f..59dce66 100644
--- a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_959d94 "textureStore_959d94"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = 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
+         %19 = OpConstantNull %v4float
+%textureStore_959d94 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_959d94
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_959d94
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_959d94
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_959d94
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 1c4d7e2..8eba4d9 100644
--- a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_959d94();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_959d94();
diff --git a/test/tint/builtins/gen/var/textureStore/95e452.wgsl b/test/tint/builtins/gen/var/textureStore/95e452.wgsl
index 95cca17..1783aa9 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_95e452();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_95e452();
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 4b3cf99..82a6662 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_95e452();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_95e452();
   return;
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 4b3cf99..82a6662 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_95e452();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_95e452();
   return;
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 d0c66a8..d458940 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_95e452() {
-  uvec2 arg_1 = uvec2(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_95e452();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 3326a49..53de879 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_95e452(texture2d<int, access::write> tint_symbol_1) {
+void textureStore_95e452(texture2d<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_95e452(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_95e452(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_95e452(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_95e452(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_95e452(tint_symbol_2);
   return;
 }
 
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 04c19d1..749faaf 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_95e452 "textureStore_95e452"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %21 = OpConstantNull %v4int
+%textureStore_95e452 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_95e452
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_95e452
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_95e452
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_95e452
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 ab3968fb..20c29e9 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_95e452();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_95e452();
diff --git a/test/tint/builtins/gen/var/textureStore/969534.wgsl b/test/tint/builtins/gen/var/textureStore/969534.wgsl
index c25e1eb..72f2478 100644
--- a/test/tint/builtins/gen/var/textureStore/969534.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/969534.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_969534();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_969534();
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 c12601d..7563a20 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_969534();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_969534();
   return;
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 c12601d..7563a20 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_969534();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_969534();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.glsl
index e9efc1d..f7d5d2f 100644
--- a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_969534() {
-  int arg_1 = 1;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_969534();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 ce5ff51..99cc50e 100644
--- a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_969534(texture1d<int, access::write> tint_symbol_1) {
+void textureStore_969534(texture1d<int, access::write> tint_symbol) {
   int arg_1 = 1;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_969534(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_969534(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_969534(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_969534(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_969534(tint_symbol_2);
   return;
 }
 
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 475896e..bcb0a72 100644
--- a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_969534 "textureStore_969534"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %12 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %25
+         %17 = OpConstantNull %v4int
+%textureStore_969534 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %17
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %int %arg_1
+         %21 = OpLoad %v4int %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_969534
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_969534
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_969534
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_969534
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 df5ca1d..53cc849 100644
--- a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_969534();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_969534();
diff --git a/test/tint/builtins/gen/var/textureStore/976636.wgsl b/test/tint/builtins/gen/var/textureStore/976636.wgsl
index ab9fb2a..f2e8d5c 100644
--- a/test/tint/builtins/gen/var/textureStore/976636.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/976636.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_976636();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_976636();
diff --git a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.dxc.hlsl
index 0da38e2..7317665 100644
--- a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_976636();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_976636();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.fxc.hlsl
index 0da38e2..7317665 100644
--- a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_976636();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_976636();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.glsl
index be659f0..cab5e1e 100644
--- a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_976636() {
-  uint arg_1 = 1u;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_976636();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.msl
index af9d90e..d720879 100644
--- a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_976636(texture1d<int, access::read_write> tint_symbol_1) {
+void textureStore_976636(texture1d<int, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_976636(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_976636(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_976636(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_976636(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_976636(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.spvasm
index 9e6eef3..4f0020d 100644
--- a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_976636 "textureStore_976636"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %21 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_976636 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+         %19 = OpConstantNull %v4int
+%textureStore_976636 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %uint %arg_1
-         %31 = OpLoad %v4int %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_976636
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_976636
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_976636
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_976636
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_976636
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.wgsl
index 20af646..264bb92 100644
--- a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_976636();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_976636();
diff --git a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl
index 8854bb2..ad6d4be 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9938b7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9938b7();
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 afe3ac1..ab0a617 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9938b7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9938b7();
   return;
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 afe3ac1..ab0a617 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9938b7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9938b7();
   return;
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 4e7b172..57cc4fb 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_9938b7() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_9938b7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 5ebe2ac..0125183 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9938b7(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_9938b7(texture2d_array<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_9938b7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9938b7(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9938b7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9938b7(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9938b7(tint_symbol_2);
   return;
 }
 
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 35871f0..5db7952 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9938b7 "textureStore_9938b7"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_9938b7 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_9938b7 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_9938b7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_9938b7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_9938b7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_9938b7
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 a4045a5..81870df 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9938b7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9938b7();
diff --git a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl
index eb5b516..7d30044 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9a3ecc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9a3ecc();
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 aef5c1d..ce5de29 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9a3ecc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9a3ecc();
   return;
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 aef5c1d..ce5de29 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9a3ecc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9a3ecc();
   return;
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 5ee23ab..d32d846 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_9a3ecc() {
-  ivec3 arg_1 = ivec3(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_9a3ecc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 9c2fa40..a0dfff2 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9a3ecc(texture3d<int, access::write> tint_symbol_1) {
+void textureStore_9a3ecc(texture3d<int, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_9a3ecc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9a3ecc(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9a3ecc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9a3ecc(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9a3ecc(tint_symbol_2);
   return;
 }
 
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 5548c20..7b15552 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9a3ecc "textureStore_9a3ecc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %11 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %14 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %19 = OpConstantNull %v4int
+%textureStore_9a3ecc = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_9a3ecc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_9a3ecc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_9a3ecc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_9a3ecc
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 a64c7b3..bf4c570 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9a3ecc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9a3ecc();
diff --git a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl
index fb2967d..4d4c897 100644
--- a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9aedd3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9aedd3();
diff --git a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.dxc.hlsl
index 97ea2d9..01a44d0 100644
--- a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9aedd3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9aedd3();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.fxc.hlsl
index 97ea2d9..01a44d0 100644
--- a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9aedd3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9aedd3();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.glsl
index 65987bc..562d51d 100644
--- a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_9aedd3() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_9aedd3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.msl
index e02f70f..bf07be0 100644
--- a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9aedd3(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_9aedd3(texture3d<float, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_9aedd3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9aedd3(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9aedd3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9aedd3(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9aedd3(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.spvasm
index e81e58e..a91951b 100644
--- a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.spvasm
@@ -1,85 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9aedd3 "textureStore_9aedd3"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
-%textureStore_9aedd3 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %19
-               OpStore %arg_2 %24
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v3uint %arg_1
-         %30 = OpLoad %v4float %arg_2
-         %31 = OpVectorShuffle %v4float %30 %30 2 1 0 3
-               OpImageWrite %28 %29 %31
+         %21 = OpConstantNull %v4float
+%textureStore_9aedd3 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+         %26 = OpVectorShuffle %v4float %25 %25 2 1 0 3
+               OpImageWrite %23 %24 %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_9aedd3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_9aedd3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_9aedd3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_9aedd3
+%compute_main = OpFunction %void None %5
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_9aedd3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.wgsl
index 651126d..fabcf92 100644
--- a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9aedd3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9aedd3();
diff --git a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl
index 316c4be..06afcb1 100644
--- a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9ba5c1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9ba5c1();
diff --git a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.dxc.hlsl
index 5dcff65..5acd3f8 100644
--- a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9ba5c1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9ba5c1();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.fxc.hlsl
index 5dcff65..5acd3f8 100644
--- a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9ba5c1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9ba5c1();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.glsl
index 6122c09..471b2d7 100644
--- a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_9ba5c1() {
-  uint arg_1 = 1u;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_9ba5c1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.msl
index 99e90e5..c2c813a 100644
--- a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9ba5c1(texture1d<uint, access::read_write> tint_symbol_1) {
+void textureStore_9ba5c1(texture1d<uint, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_9ba5c1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9ba5c1(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9ba5c1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9ba5c1(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9ba5c1(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.spvasm
index 2532480..75355f8 100644
--- a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.spvasm
@@ -1,84 +1,55 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9ba5c1 "textureStore_9ba5c1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %12 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %25 = OpConstantNull %v4uint
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_9ba5c1 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
+         %17 = OpConstantNull %v4uint
+%textureStore_9ba5c1 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %17
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %uint %arg_1
+         %21 = OpLoad %v4uint %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_9ba5c1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_9ba5c1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_9ba5c1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_9ba5c1
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_9ba5c1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.wgsl
index 6ce66c9..c274dc8 100644
--- a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9ba5c1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9ba5c1();
diff --git a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl
index 7cf2d5e..aa96ddd 100644
--- a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9cea9e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9cea9e();
diff --git a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.dxc.hlsl
index bbf1196..906ddad 100644
--- a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9cea9e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9cea9e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.fxc.hlsl
index bbf1196..906ddad 100644
--- a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9cea9e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9cea9e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.glsl
index 946c8a8..d9ac6d5 100644
--- a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_9cea9e() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_9cea9e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.msl
index d84a56c..ab8dd22 100644
--- a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9cea9e(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_9cea9e(texture2d_array<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_9cea9e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9cea9e(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9cea9e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9cea9e(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9cea9e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.spvasm
index d5dfa98..4210219 100644
--- a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9cea9e "textureStore_9cea9e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_9cea9e = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_9cea9e = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_9cea9e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_9cea9e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_9cea9e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_9cea9e
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_9cea9e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.wgsl
index 0656ffc..fa03c0b 100644
--- a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9cea9e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9cea9e();
diff --git a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl
index 5d227dd..df71699 100644
--- a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9d7c62();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9d7c62();
diff --git a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.dxc.hlsl
index 66d06be..c87bd9c 100644
--- a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9d7c62();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9d7c62();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.fxc.hlsl
index 66d06be..c87bd9c 100644
--- a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9d7c62();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9d7c62();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.glsl
index b54d85e..91ecfcb 100644
--- a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_9d7c62() {
-  int arg_1 = 1;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_9d7c62();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.msl
index d6fbae6..15c5a26 100644
--- a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9d7c62(texture1d<uint, access::read_write> tint_symbol_1) {
+void textureStore_9d7c62(texture1d<uint, access::read_write> tint_symbol) {
   int arg_1 = 1;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_9d7c62(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9d7c62(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9d7c62(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9d7c62(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9d7c62(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.spvasm
index fe486da..a8e1a49 100644
--- a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9d7c62 "textureStore_9d7c62"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %21 = OpConstantNull %int
+         %13 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_9d7c62 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+         %19 = OpConstantNull %v4uint
+%textureStore_9d7c62 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %int %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_9d7c62
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_9d7c62
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_9d7c62
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_9d7c62
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_9d7c62
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.wgsl
index eb6528a..b2d59d6 100644
--- a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9d7c62();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9d7c62();
diff --git a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl
index f219a14..c84ac38 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9d8668();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9d8668();
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 dcc25a6..7cad60b 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9d8668();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9d8668();
   return;
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 dcc25a6..7cad60b 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9d8668();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9d8668();
   return;
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 ad38bcf..e8a1999 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_9d8668() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_9d8668();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 7bbee65..abe5663 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9d8668(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_9d8668(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_9d8668(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9d8668(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9d8668(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9d8668(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9d8668(tint_symbol_2);
   return;
 }
 
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 aa6a4d3..583359b 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9d8668 "textureStore_9d8668"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-%textureStore_9d8668 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_9d8668 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_9d8668
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_9d8668
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_9d8668
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_9d8668
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = 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 5241933..7fe5e16 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9d8668();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9d8668();
diff --git a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl
index 7c95764..710579b 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9d9cd5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9d9cd5();
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 b4e2733..4523201 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9d9cd5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9d9cd5();
   return;
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 b4e2733..4523201 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9d9cd5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9d9cd5();
   return;
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 09d5a90..dc03a21 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_9d9cd5() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_9d9cd5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 b9e24ad..2406fac 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9d9cd5(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_9d9cd5(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_9d9cd5(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9d9cd5(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9d9cd5(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9d9cd5(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9d9cd5(tint_symbol_2);
   return;
 }
 
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 4c7a242..78be6f1 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9d9cd5 "textureStore_9d9cd5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
-%textureStore_9d9cd5 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_9d9cd5 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_9d9cd5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_9d9cd5
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_9d9cd5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_9d9cd5
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 4d43460..67b8a69 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9d9cd5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9d9cd5();
diff --git a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl
index ef702e6..f74b1c5 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9e3ec5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9e3ec5();
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 18531fc..e4ad21c 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9e3ec5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9e3ec5();
   return;
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 18531fc..e4ad21c 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9e3ec5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9e3ec5();
   return;
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 8c54f5d..964fea6 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_9e3ec5() {
-  ivec2 arg_1 = ivec2(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_9e3ec5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 2c1da1d..db4ddc5 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9e3ec5(texture2d<int, access::write> tint_symbol_1) {
+void textureStore_9e3ec5(texture2d<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_9e3ec5(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9e3ec5(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9e3ec5(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9e3ec5(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9e3ec5(tint_symbol_2);
   return;
 }
 
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 e2c8e64..bbdda28 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9e3ec5 "textureStore_9e3ec5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %19 = OpConstantNull %v4int
+%textureStore_9e3ec5 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_9e3ec5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_9e3ec5
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_9e3ec5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_9e3ec5
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 786a000..f83bdda 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9e3ec5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9e3ec5();
diff --git a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl
index aa39a9e..e2268ac 100644
--- a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl
@@ -44,12 +44,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9e5bc2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9e5bc2();
diff --git a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.dxc.hlsl
index 1c07eae..bfc8880 100644
--- a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9e5bc2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9e5bc2();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.fxc.hlsl
index 1c07eae..bfc8880 100644
--- a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9e5bc2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9e5bc2();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.msl
index 8098299..8ac05b5 100644
--- a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9e5bc2(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_9e5bc2(texture2d<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_9e5bc2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9e5bc2(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9e5bc2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9e5bc2(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9e5bc2(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.spvasm
index 535ed4a..4678d87 100644
--- a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.spvasm
@@ -1,85 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9e5bc2 "textureStore_9e5bc2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_9e5bc2 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_9e5bc2 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_9e5bc2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_9e5bc2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_9e5bc2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_9e5bc2
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_9e5bc2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.wgsl
index 717a13b..b4571be 100644
--- a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.wgsl
@@ -8,12 +8,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9e5bc2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9e5bc2();
diff --git a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl
index 186c678..8bd612e 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9f5318();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9f5318();
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 42b1086..8ae06ed 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9f5318();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9f5318();
   return;
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 42b1086..8ae06ed 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9f5318();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9f5318();
   return;
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 58486e7..3365188 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9f5318(texture2d<int, access::write> tint_symbol_1) {
+void textureStore_9f5318(texture2d<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_9f5318(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9f5318(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9f5318(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9f5318(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9f5318(tint_symbol_2);
   return;
 }
 
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 93dec97..32d8df4 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.spvasm
@@ -1,89 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9f5318 "textureStore_9f5318"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %21 = OpConstantNull %v4int
+%textureStore_9f5318 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_9f5318
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_9f5318
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_9f5318
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_9f5318
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 1b711ae..ef95c36 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9f5318();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9f5318();
diff --git a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl
index c4da36c..d32b789 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9f7cea();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9f7cea();
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 342f4c0..1d2c076 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9f7cea();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9f7cea();
   return;
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 342f4c0..1d2c076 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_9f7cea();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_9f7cea();
   return;
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 8b81f25..a9c2f40 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_9f7cea() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_9f7cea();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 0b17dac..2688c7c 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_9f7cea(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_9f7cea(texture2d_array<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_9f7cea(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_9f7cea(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_9f7cea(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_9f7cea(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_9f7cea(tint_symbol_2);
   return;
 }
 
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 d6a2eed..371a5e8 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_9f7cea "textureStore_9f7cea"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_9f7cea = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_9f7cea = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_9f7cea
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_9f7cea
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_9f7cea
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_9f7cea
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 c8cceff..15f2783 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9f7cea();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_9f7cea();
diff --git a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl
index de1f24d..934085a 100644
--- a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a0022f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a0022f();
diff --git a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.dxc.hlsl
index 00bb5f8..86e746f 100644
--- a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a0022f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a0022f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.fxc.hlsl
index 00bb5f8..86e746f 100644
--- a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a0022f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a0022f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.glsl
index 6280c51..df1d03c 100644
--- a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2DArray arg_0;
-void textureStore_a0022f() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_a0022f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.msl
index 1dab711..db707ef 100644
--- a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a0022f(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_a0022f(texture2d_array<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_a0022f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a0022f(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a0022f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a0022f(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a0022f(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.spvasm
index 047c1fa..bdbd3a6 100644
--- a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.spvasm
@@ -1,95 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a0022f "textureStore_a0022f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %17 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_a0022f = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_a0022f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2int %arg_1
+         %27 = OpCompositeExtract %int %26 0
+         %28 = OpCompositeExtract %int %26 1
+         %29 = OpLoad %int %arg_2
+         %30 = OpCompositeConstruct %v3int %27 %28 %29
+         %31 = OpLoad %v4int %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_a0022f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_a0022f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_a0022f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_a0022f
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_a0022f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.wgsl
index a3825c3..87a20e6 100644
--- a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a0022f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a0022f();
diff --git a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl
index 9dc8075..f739f36 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a0f96e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a0f96e();
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 960f037..c6fd074 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a0f96e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a0f96e();
   return;
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 960f037..c6fd074 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a0f96e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a0f96e();
   return;
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 b520a43..7ede049 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_a0f96e() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_a0f96e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 8d5db86..c5cacb3 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a0f96e(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_a0f96e(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_a0f96e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a0f96e(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a0f96e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a0f96e(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a0f96e(tint_symbol_2);
   return;
 }
 
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 b04517c..6a5d87b 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a0f96e "textureStore_a0f96e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
-%textureStore_a0f96e = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_a0f96e = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_a0f96e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_a0f96e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_a0f96e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_a0f96e
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 7ed7210..f4dfca7 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a0f96e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a0f96e();
diff --git a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl
index 0fe3fb6..7658fad 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a1352c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a1352c();
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 93cfc70..e68dea8 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a1352c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a1352c();
   return;
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 93cfc70..e68dea8 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a1352c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a1352c();
   return;
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 b6345cd..29f9126 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_a1352c() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_a1352c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 2eecb90..d40744c 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a1352c(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_a1352c(texture2d_array<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_a1352c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a1352c(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a1352c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a1352c(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a1352c(tint_symbol_2);
   return;
 }
 
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 b6dc94d..f7cbd28 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a1352c "textureStore_a1352c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %26 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_a1352c = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_a1352c = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_a1352c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_a1352c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_a1352c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_a1352c
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 0974686..08c298a 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a1352c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a1352c();
diff --git a/test/tint/builtins/gen/var/textureStore/a14041.wgsl b/test/tint/builtins/gen/var/textureStore/a14041.wgsl
index 5edce2e..641fbb7 100644
--- a/test/tint/builtins/gen/var/textureStore/a14041.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a14041.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a14041();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a14041();
diff --git a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.dxc.hlsl
index 0c2765b..988897b 100644
--- a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a14041();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a14041();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.fxc.hlsl
index 0c2765b..988897b 100644
--- a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a14041();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a14041();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.glsl
index a322fe3..175506c 100644
--- a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_a14041() {
-  int arg_1 = 1;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_a14041();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.msl
index 2b6bd42..c8e585f 100644
--- a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a14041(texture1d<int, access::read_write> tint_symbol_1) {
+void textureStore_a14041(texture1d<int, access::read_write> tint_symbol) {
   int arg_1 = 1;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_a14041(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a14041(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a14041(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a14041(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a14041(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.spvasm
index 520edbe..db95e5d 100644
--- a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.spvasm
@@ -1,84 +1,55 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a14041 "textureStore_a14041"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %12 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %25 = OpConstantNull %v4int
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_a14041 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %25
+         %17 = OpConstantNull %v4int
+%textureStore_a14041 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %17
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %int %arg_1
+         %21 = OpLoad %v4int %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_a14041
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_a14041
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_a14041
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_a14041
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_a14041
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.wgsl
index 078ea01..a54f533 100644
--- a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a14041();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a14041();
diff --git a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl
index a9e78ee..1d520b8 100644
--- a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a165b8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a165b8();
diff --git a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.dxc.hlsl
index 15f102f..82ab5d5 100644
--- a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a165b8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a165b8();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.fxc.hlsl
index 15f102f..82ab5d5 100644
--- a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a165b8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a165b8();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.glsl
index 4c8765f..33bb138 100644
--- a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_a165b8() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_a165b8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.msl
index d9b7d7f..bf6fe0a 100644
--- a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a165b8(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_a165b8(texture2d<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_a165b8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a165b8(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a165b8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a165b8(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a165b8(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.spvasm
index 1d3da9b..cd2468e 100644
--- a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.spvasm
@@ -1,85 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a165b8 "textureStore_a165b8"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
-%textureStore_a165b8 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %19
-               OpStore %arg_2 %24
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2uint %arg_1
-         %30 = OpLoad %v4float %arg_2
-         %31 = OpVectorShuffle %v4float %30 %30 2 1 0 3
-               OpImageWrite %28 %29 %31
+         %21 = OpConstantNull %v4float
+%textureStore_a165b8 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+         %26 = OpVectorShuffle %v4float %25 %25 2 1 0 3
+               OpImageWrite %23 %24 %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_a165b8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_a165b8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_a165b8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_a165b8
+%compute_main = OpFunction %void None %5
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_a165b8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.wgsl
index 880233b..f4e15f5 100644
--- a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a165b8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a165b8();
diff --git a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl
index 7f12235..fd27150 100644
--- a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a19a12();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a19a12();
diff --git a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.dxc.hlsl
index 7da6b4c..022ab49 100644
--- a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a19a12();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a19a12();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.fxc.hlsl
index 7da6b4c..022ab49 100644
--- a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a19a12();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a19a12();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.glsl
index 42c17b1..da419a2 100644
--- a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_a19a12() {
-  ivec3 arg_1 = ivec3(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_a19a12();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.msl
index 054b509..c927753 100644
--- a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a19a12(texture3d<uint, access::read_write> tint_symbol_1) {
+void textureStore_a19a12(texture3d<uint, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_a19a12(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a19a12(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a19a12(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a19a12(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a19a12(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.spvasm
index a8658a1..f75b148 100644
--- a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a19a12 "textureStore_a19a12"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %23 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_a19a12 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4uint
+%textureStore_a19a12 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_a19a12
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_a19a12
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_a19a12
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_a19a12
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_a19a12
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.wgsl
index 00ab3b2..2116ca1 100644
--- a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a19a12();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a19a12();
diff --git a/test/tint/builtins/gen/var/textureStore/a24491.wgsl b/test/tint/builtins/gen/var/textureStore/a24491.wgsl
index 2931189..1c86d84 100644
--- a/test/tint/builtins/gen/var/textureStore/a24491.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a24491.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a24491();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a24491();
diff --git a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.dxc.hlsl
index 20797bc..853afab 100644
--- a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a24491();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a24491();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.fxc.hlsl
index 20797bc..853afab 100644
--- a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a24491();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a24491();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.glsl
index 94c0728..61c6c18 100644
--- a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_a24491() {
-  uvec2 arg_1 = uvec2(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_a24491();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.msl
index ae9b1b1..8618beb 100644
--- a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a24491(texture2d<uint, access::read_write> tint_symbol_1) {
+void textureStore_a24491(texture2d<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_a24491(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a24491(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a24491(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a24491(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a24491(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.spvasm
index ec084e1..91c5666 100644
--- a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a24491 "textureStore_a24491"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_a24491 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4uint
+%textureStore_a24491 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_a24491
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_a24491
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_a24491
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_a24491
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_a24491
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.wgsl
index 87f855a..86052e4 100644
--- a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a24491();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a24491();
diff --git a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl
index 720db68..8c633be 100644
--- a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a4c338();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a4c338();
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 a2b9d72..61c8fe4 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a4c338();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a4c338();
   return;
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 a2b9d72..61c8fe4 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a4c338();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a4c338();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.glsl
index aa2a884..fa7f561 100644
--- a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_a4c338() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_a4c338();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 5643f17..e9e8f9a 100644
--- a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a4c338(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_a4c338(texture1d<float, access::write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_a4c338(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a4c338(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a4c338(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a4c338(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a4c338(tint_symbol_2);
   return;
 }
 
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 d92f716..70063b8 100644
--- a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a4c338 "textureStore_a4c338"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = 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
+         %19 = OpConstantNull %v4float
+%textureStore_a4c338 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_a4c338
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_a4c338
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_a4c338
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_a4c338
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 96e6f1a..27c3734 100644
--- a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a4c338();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a4c338();
diff --git a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl
index 5cd195a..b0df5b0 100644
--- a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a5b88e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a5b88e();
diff --git a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.dxc.hlsl
index e33ced8..c918268 100644
--- a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a5b88e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a5b88e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.fxc.hlsl
index e33ced8..c918268 100644
--- a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a5b88e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a5b88e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.glsl
index fd95589..27748d3 100644
--- a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage3D arg_0;
-void textureStore_a5b88e() {
-  uvec3 arg_1 = uvec3(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_a5b88e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.msl
index 12563fb..c6d87a4 100644
--- a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a5b88e(texture3d<int, access::read_write> tint_symbol_1) {
+void textureStore_a5b88e(texture3d<int, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_a5b88e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a5b88e(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a5b88e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a5b88e(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a5b88e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.spvasm
index 4a64952..f4421aa 100644
--- a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a5b88e "textureStore_a5b88e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %23 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_a5b88e = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4int
+%textureStore_a5b88e = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_a5b88e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_a5b88e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_a5b88e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_a5b88e
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_a5b88e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.wgsl
index 83696bc..886a94e 100644
--- a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a5b88e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a5b88e();
diff --git a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl
index e845165..d066f113 100644
--- a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a5c925();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a5c925();
diff --git a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.dxc.hlsl
index 1027a03..d372b1f 100644
--- a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a5c925();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a5c925();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.fxc.hlsl
index 1027a03..d372b1f 100644
--- a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a5c925();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a5c925();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.glsl
index 230f0aa..86a1da0 100644
--- a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage3D arg_0;
-void textureStore_a5c925() {
-  uvec3 arg_1 = uvec3(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_a5c925();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.msl
index e08dced..c7d54de 100644
--- a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a5c925(texture3d<int, access::read_write> tint_symbol_1) {
+void textureStore_a5c925(texture3d<int, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_a5c925(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a5c925(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a5c925(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a5c925(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a5c925(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.spvasm
index b87df48..64f6acd 100644
--- a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a5c925 "textureStore_a5c925"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %23 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_a5c925 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4int
+%textureStore_a5c925 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_a5c925
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_a5c925
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_a5c925
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_a5c925
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_a5c925
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.wgsl
index 5b56745..34439e3 100644
--- a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a5c925();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a5c925();
diff --git a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl
index b914796..68ff159 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a5e80d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a5e80d();
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 d5c2247..a1389cc 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a5e80d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a5e80d();
   return;
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 d5c2247..a1389cc 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a5e80d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a5e80d();
   return;
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 2c12606..3c9237e 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image3D arg_0;
-void textureStore_a5e80d() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_a5e80d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e00f52f..a9e0feb 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a5e80d(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_a5e80d(texture3d<float, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_a5e80d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a5e80d(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a5e80d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a5e80d(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a5e80d(tint_symbol_2);
   return;
 }
 
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 4833576..c415fcf 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a5e80d "textureStore_a5e80d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_a5e80d = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_a5e80d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_a5e80d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_a5e80d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_a5e80d
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 61026f0..2be2555 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a5e80d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a5e80d();
diff --git a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl
index bd82037..da74a09 100644
--- a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a66ca4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a66ca4();
diff --git a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.dxc.hlsl
index 49598ef..56d7370 100644
--- a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a66ca4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a66ca4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.fxc.hlsl
index 49598ef..56d7370 100644
--- a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a66ca4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a66ca4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.glsl
index e7a6a48..be5f69e 100644
--- a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_a66ca4() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_a66ca4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.msl
index 1c76877..ffe3ead 100644
--- a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a66ca4(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_a66ca4(texture3d<float, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_a66ca4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a66ca4(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a66ca4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a66ca4(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a66ca4(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.spvasm
index 532130c..5270cc7 100644
--- a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a66ca4 "textureStore_a66ca4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
-%textureStore_a66ca4 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %19
-               OpStore %arg_2 %24
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v3int %arg_1
-         %30 = OpLoad %v4float %arg_2
-         %31 = OpVectorShuffle %v4float %30 %30 2 1 0 3
-               OpImageWrite %28 %29 %31
+         %21 = OpConstantNull %v4float
+%textureStore_a66ca4 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+         %26 = OpVectorShuffle %v4float %25 %25 2 1 0 3
+               OpImageWrite %23 %24 %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_a66ca4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_a66ca4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_a66ca4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_a66ca4
+%compute_main = OpFunction %void None %5
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_a66ca4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.wgsl
index 11fb3c9..2af8a0a 100644
--- a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a66ca4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a66ca4();
diff --git a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl
index d16dcd6..a46f723 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a6a986();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a6a986();
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 2f80fcd..da721c3 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a6a986();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a6a986();
   return;
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 2f80fcd..da721c3 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a6a986();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a6a986();
   return;
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 4dfb573..3fb32f9 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_a6a986() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_a6a986();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 e4fa7fa..1e22ffb 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a6a986(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_a6a986(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_a6a986(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a6a986(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a6a986(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a6a986(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a6a986(tint_symbol_2);
   return;
 }
 
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 4186142..4142931 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a6a986 "textureStore_a6a986"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-%textureStore_a6a986 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_a6a986 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_a6a986
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_a6a986
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_a6a986
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_a6a986
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = 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 eae1eee..2d70f1a 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a6a986();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a6a986();
diff --git a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl
index 232a625..eb078c5 100644
--- a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a6e78f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a6e78f();
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 7627d5b..1db1791 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a6e78f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a6e78f();
   return;
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 7627d5b..1db1791 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a6e78f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a6e78f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.glsl
index 249ee4f..1624621 100644
--- a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_a6e78f() {
-  uint arg_1 = 1u;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_a6e78f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 07ee9e6..27eb54b 100644
--- a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a6e78f(texture1d<uint, access::write> tint_symbol_1) {
+void textureStore_a6e78f(texture1d<uint, access::write> tint_symbol) {
   uint arg_1 = 1u;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_a6e78f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a6e78f(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a6e78f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a6e78f(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a6e78f(tint_symbol_2);
   return;
 }
 
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 85835b1..ce113ae 100644
--- a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a6e78f "textureStore_a6e78f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %12 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %25
+         %17 = OpConstantNull %v4uint
+%textureStore_a6e78f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %17
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %uint %arg_1
+         %21 = OpLoad %v4uint %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_a6e78f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_a6e78f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_a6e78f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_a6e78f
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 182f6be..f30fe57 100644
--- a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a6e78f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a6e78f();
diff --git a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl
index 6b62fbd..15580ec 100644
--- a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a702b6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a702b6();
diff --git a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.dxc.hlsl
index f92bfad..75a97b5 100644
--- a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a702b6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a702b6();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.fxc.hlsl
index f92bfad..75a97b5 100644
--- a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a702b6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a702b6();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.msl
index dbbb31d..3be87e3 100644
--- a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a702b6(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_a702b6(texture2d_array<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_a702b6(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a702b6(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a702b6(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a702b6(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a702b6(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.spvasm
index 9ddfba6..611e0f5 100644
--- a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a702b6 "textureStore_a702b6"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %26 = OpConstantNull %int
+         %18 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_a702b6 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_a702b6 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_a702b6
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_a702b6
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_a702b6
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_a702b6
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_a702b6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.wgsl
index 029d5d6..77a2d85 100644
--- a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a702b6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a702b6();
diff --git a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl
index 3a53b3f..124a64f 100644
--- a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl
@@ -44,12 +44,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a7fc47();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a7fc47();
diff --git a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.dxc.hlsl
index 815676f..703c65a 100644
--- a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a7fc47();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a7fc47();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.fxc.hlsl
index 815676f..703c65a 100644
--- a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a7fc47();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a7fc47();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.msl
index 211f531..19784d5 100644
--- a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a7fc47(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_a7fc47(texture1d<float, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_a7fc47(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a7fc47(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a7fc47(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a7fc47(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a7fc47(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.spvasm
index e3576ea..8d3340d 100644
--- a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a7fc47 "textureStore_a7fc47"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_a7fc47 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_a7fc47 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_a7fc47
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_a7fc47
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_a7fc47
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_a7fc47
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_a7fc47
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.wgsl
index b0eb039..fb38339 100644
--- a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.wgsl
@@ -8,12 +8,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a7fc47();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a7fc47();
diff --git a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl
index 166f4cf..fd6d07e 100644
--- a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a9298c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a9298c();
diff --git a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.dxc.hlsl
index f778273..07ffad1 100644
--- a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a9298c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a9298c();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.fxc.hlsl
index f778273..07ffad1 100644
--- a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a9298c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a9298c();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.msl
index 3706491..72f7f61 100644
--- a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a9298c(texture1d<uint, access::read_write> tint_symbol_1) {
+void textureStore_a9298c(texture1d<uint, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_a9298c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a9298c(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a9298c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a9298c(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a9298c(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.spvasm
index 73a0ae8..92f164d 100644
--- a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a9298c "textureStore_a9298c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %12 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %25 = OpConstantNull %v4uint
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_a9298c = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
+         %17 = OpConstantNull %v4uint
+%textureStore_a9298c = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %17
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %uint %arg_1
+         %21 = OpLoad %v4uint %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_a9298c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_a9298c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_a9298c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_a9298c
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_a9298c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.wgsl
index e812507..473c00f 100644
--- a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a9298c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a9298c();
diff --git a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl
index 2704614..3100026 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a9426c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a9426c();
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 edd7a0e..585d8e4 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a9426c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a9426c();
   return;
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 edd7a0e..585d8e4 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_a9426c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_a9426c();
   return;
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 9d26ceb..6d5c381 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_a9426c() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_a9426c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 cd1bca4..0c5ca0a 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_a9426c(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_a9426c(texture2d_array<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_a9426c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_a9426c(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_a9426c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_a9426c(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_a9426c(tint_symbol_2);
   return;
 }
 
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 e9d783b..534ab1e 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.spvasm
@@ -1,96 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_a9426c "textureStore_a9426c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %17 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpConstantNull %v4uint
+         %22 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_a9426c = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_a9426c = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2uint %arg_1
+         %27 = OpCompositeExtract %uint %26 0
+         %28 = OpCompositeExtract %uint %26 1
+         %29 = OpLoad %uint %arg_2
+         %30 = OpCompositeConstruct %v3uint %27 %28 %29
+         %31 = OpLoad %v4uint %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_a9426c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_a9426c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_a9426c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_a9426c
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = 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 457d2be..3225ca2 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_a9426c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_a9426c();
diff --git a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl
index 381eca4..c834c20 100644
--- a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ab03b6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ab03b6();
diff --git a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.dxc.hlsl
index df0434a..62de5c7 100644
--- a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ab03b6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ab03b6();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.fxc.hlsl
index df0434a..62de5c7 100644
--- a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ab03b6();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ab03b6();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.glsl
index 9ce4c35..9edb614 100644
--- a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_ab03b6() {
-  ivec3 arg_1 = ivec3(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_ab03b6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.msl
index 56d6cdb..eee852c 100644
--- a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ab03b6(texture3d<uint, access::read_write> tint_symbol_1) {
+void textureStore_ab03b6(texture3d<uint, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_ab03b6(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ab03b6(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ab03b6(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ab03b6(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ab03b6(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.spvasm
index 093b795..dab4533 100644
--- a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ab03b6 "textureStore_ab03b6"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %23 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_ab03b6 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4uint
+%textureStore_ab03b6 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_ab03b6
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_ab03b6
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_ab03b6
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_ab03b6
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_ab03b6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.wgsl
index 1ab2b36..5f26bb8 100644
--- a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ab03b6();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ab03b6();
diff --git a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl
index fd3c547..6e59cfd 100644
--- a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ab788e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ab788e();
diff --git a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.dxc.hlsl
index 49e308e..d0f2843 100644
--- a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ab788e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ab788e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.fxc.hlsl
index 49e308e..d0f2843 100644
--- a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ab788e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ab788e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.msl
index a85f342..e07e8f0 100644
--- a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ab788e(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_ab788e(texture2d<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_ab788e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ab788e(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ab788e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ab788e(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ab788e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.spvasm
index 9d2d7b9..f847e48 100644
--- a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ab788e "textureStore_ab788e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_ab788e = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_ab788e = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_ab788e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_ab788e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_ab788e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_ab788e
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_ab788e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.wgsl
index 3aa424b..990f93f 100644
--- a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ab788e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ab788e();
diff --git a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl
index c5c7627..4a7a6f0 100644
--- a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_abdd21();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_abdd21();
diff --git a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.dxc.hlsl
index 05994bf..b034999 100644
--- a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_abdd21();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_abdd21();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.fxc.hlsl
index 05994bf..b034999 100644
--- a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_abdd21();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_abdd21();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.glsl
index b31c94d..dd6ce04 100644
--- a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2DArray arg_0;
-void textureStore_abdd21() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_abdd21();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.msl
index 373fb39..ee0e245 100644
--- a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_abdd21(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_abdd21(texture2d_array<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_abdd21(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_abdd21(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_abdd21(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_abdd21(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_abdd21(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.spvasm
index bf859a0..276f4b5 100644
--- a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.spvasm
@@ -1,95 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_abdd21 "textureStore_abdd21"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %17 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpConstantNull %v4uint
+         %22 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_abdd21 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_abdd21 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2uint %arg_1
+         %27 = OpCompositeExtract %uint %26 0
+         %28 = OpCompositeExtract %uint %26 1
+         %29 = OpLoad %uint %arg_2
+         %30 = OpCompositeConstruct %v3uint %27 %28 %29
+         %31 = OpLoad %v4uint %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_abdd21
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_abdd21
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_abdd21
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_abdd21
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_abdd21
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.wgsl
index 056a425..7231dea 100644
--- a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_abdd21();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_abdd21();
diff --git a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl
index 4e6b5f0..40fc539 100644
--- a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ac0a55();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ac0a55();
diff --git a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.dxc.hlsl
index e334aa6..890c450 100644
--- a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ac0a55();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ac0a55();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.fxc.hlsl
index e334aa6..890c450 100644
--- a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ac0a55();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ac0a55();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.glsl
index 01f4014..9ca092b 100644
--- a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_ac0a55() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_ac0a55();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.msl
index 255c40f..7d79098 100644
--- a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ac0a55(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_ac0a55(texture2d_array<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_ac0a55(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ac0a55(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ac0a55(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ac0a55(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ac0a55(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.spvasm
index 48334a0..0c9f599 100644
--- a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.spvasm
@@ -1,95 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ac0a55 "textureStore_ac0a55"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %17 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpConstantNull %v4uint
+         %22 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_ac0a55 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_ac0a55 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2uint %arg_1
+         %27 = OpCompositeExtract %uint %26 0
+         %28 = OpCompositeExtract %uint %26 1
+         %29 = OpLoad %uint %arg_2
+         %30 = OpCompositeConstruct %v3uint %27 %28 %29
+         %31 = OpLoad %v4uint %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_ac0a55
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_ac0a55
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_ac0a55
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_ac0a55
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_ac0a55
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.wgsl
index 36ba4d0..3ce9f1c 100644
--- a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ac0a55();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ac0a55();
diff --git a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl
index 5a62333..7ec1e30 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ac67aa();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ac67aa();
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 af80f4a..c23ad64 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ac67aa();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ac67aa();
   return;
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 af80f4a..c23ad64 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ac67aa();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ac67aa();
   return;
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 04fa0ba..f4197a8 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ac67aa(texture3d<uint, access::write> tint_symbol_1) {
+void textureStore_ac67aa(texture3d<uint, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_ac67aa(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ac67aa(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ac67aa(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ac67aa(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ac67aa(tint_symbol_2);
   return;
 }
 
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 4fe2977..4e9dd20 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.spvasm
@@ -1,89 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ac67aa "textureStore_ac67aa"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %23 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %21 = OpConstantNull %v4uint
+%textureStore_ac67aa = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_ac67aa
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_ac67aa
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_ac67aa
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_ac67aa
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 e6d0f63..65f849e 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ac67aa();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ac67aa();
diff --git a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl
index 4a96fab..0fb4b79 100644
--- a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl
@@ -45,12 +45,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ae6a2a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ae6a2a();
diff --git a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.dxc.hlsl
index 9973199..f11ca29 100644
--- a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ae6a2a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ae6a2a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.fxc.hlsl
index 9973199..f11ca29 100644
--- a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ae6a2a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ae6a2a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.msl
index 5a4d511..e40e831 100644
--- a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ae6a2a(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_ae6a2a(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_ae6a2a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ae6a2a(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ae6a2a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ae6a2a(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ae6a2a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.spvasm
index bafeeef..649eb8f 100644
--- a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ae6a2a "textureStore_ae6a2a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
-%textureStore_ae6a2a = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_ae6a2a = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_ae6a2a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_ae6a2a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_ae6a2a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_ae6a2a
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_ae6a2a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.wgsl
index 6b20afb..37b3398 100644
--- a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.wgsl
@@ -9,12 +9,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ae6a2a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ae6a2a();
diff --git a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl
index f5039b5..8cccb3f 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_aeb38a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_aeb38a();
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 6045352..286fd5f 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_aeb38a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_aeb38a();
   return;
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 6045352..286fd5f 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_aeb38a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_aeb38a();
   return;
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 6ff342a..c630aad 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_aeb38a() {
-  uvec2 arg_1 = uvec2(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_aeb38a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 bf39553..1b56790 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_aeb38a(texture2d<uint, access::write> tint_symbol_1) {
+void textureStore_aeb38a(texture2d<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_aeb38a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_aeb38a(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_aeb38a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_aeb38a(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_aeb38a(tint_symbol_2);
   return;
 }
 
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 4a04967..4ab94c1 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_aeb38a "textureStore_aeb38a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %19 = OpConstantNull %v4uint
+%textureStore_aeb38a = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_aeb38a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_aeb38a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_aeb38a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_aeb38a
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 cacf704..cdfe01a 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_aeb38a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_aeb38a();
diff --git a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl
index 1ba3718..39e1e3c 100644
--- a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_aedea3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_aedea3();
diff --git a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.dxc.hlsl
index 1e82b03..b363036 100644
--- a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_aedea3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_aedea3();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.fxc.hlsl
index 1e82b03..b363036 100644
--- a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_aedea3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_aedea3();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.glsl
index 23fc188..2010459 100644
--- a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_aedea3() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_aedea3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.msl
index 6a2e6ed..4e925aa 100644
--- a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_aedea3(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_aedea3(texture2d_array<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_aedea3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_aedea3(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_aedea3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_aedea3(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_aedea3(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.spvasm
index e053f9f..ed4d27d 100644
--- a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_aedea3 "textureStore_aedea3"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_aedea3 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_aedea3 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_aedea3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_aedea3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_aedea3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_aedea3
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_aedea3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.wgsl
index 01f7cd7..1723b40 100644
--- a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_aedea3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_aedea3();
diff --git a/test/tint/builtins/gen/var/textureStore/b16110.wgsl b/test/tint/builtins/gen/var/textureStore/b16110.wgsl
index 3960d99..7271c53 100644
--- a/test/tint/builtins/gen/var/textureStore/b16110.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b16110.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b16110();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b16110();
diff --git a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.dxc.hlsl
index b1643fb..9687a04 100644
--- a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b16110();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b16110();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.fxc.hlsl
index b1643fb..9687a04 100644
--- a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b16110();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b16110();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.glsl
index 2817df7..efde628 100644
--- a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_b16110() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_b16110();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.msl
index 7086f4a..ed807c1 100644
--- a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b16110(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_b16110(texture2d_array<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_b16110(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b16110(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b16110(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b16110(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b16110(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.spvasm
index 7a2e226..220c883 100644
--- a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.spvasm
@@ -1,97 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b16110 "textureStore_b16110"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %26 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_b16110 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_b16110 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_b16110
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_b16110
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_b16110
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_b16110
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_b16110
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.wgsl
index e1ea749..8b062ab 100644
--- a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b16110();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b16110();
diff --git a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl
index db5fe43..96e1cd5 100644
--- a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b286b4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b286b4();
diff --git a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.dxc.hlsl
index 8e2b44b..bb2a96a 100644
--- a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b286b4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b286b4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.fxc.hlsl
index 8e2b44b..bb2a96a 100644
--- a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b286b4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b286b4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.glsl
index 5d6d007..119a539 100644
--- a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_b286b4() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_b286b4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.msl
index 6fa621b..3f953ae 100644
--- a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b286b4(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_b286b4(texture2d_array<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_b286b4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b286b4(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b286b4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b286b4(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b286b4(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.spvasm
index 49c29ef..e1ab202 100644
--- a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.spvasm
@@ -1,97 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b286b4 "textureStore_b286b4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %26 = OpConstantNull %int
+         %18 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_b286b4 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_b286b4 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_b286b4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_b286b4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_b286b4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_b286b4
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_b286b4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.wgsl
index c3fb0a4..ef5eab5 100644
--- a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b286b4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b286b4();
diff --git a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl
index dc34fc3..d7fe272 100644
--- a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b36bc1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b36bc1();
diff --git a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.dxc.hlsl
index ddaf51b..4034903 100644
--- a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b36bc1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b36bc1();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.fxc.hlsl
index ddaf51b..4034903 100644
--- a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b36bc1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b36bc1();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.glsl
index 0e60ec0..bb7c0ff 100644
--- a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_b36bc1() {
-  uvec3 arg_1 = uvec3(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_b36bc1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.msl
index 5e7bae3..ee77645 100644
--- a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b36bc1(texture3d<uint, access::read_write> tint_symbol_1) {
+void textureStore_b36bc1(texture3d<uint, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_b36bc1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b36bc1(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b36bc1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b36bc1(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b36bc1(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.spvasm
index cc592fd..da7550c 100644
--- a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b36bc1 "textureStore_b36bc1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %11 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %14 = OpConstantNull %v3uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_b36bc1 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint 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 %v3uint %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+         %19 = OpConstantNull %v4uint
+%textureStore_b36bc1 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_b36bc1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_b36bc1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_b36bc1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_b36bc1
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_b36bc1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.wgsl
index b1ddc60..f64a3ff 100644
--- a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b36bc1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b36bc1();
diff --git a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl
index 52d92a2..f076f97 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b42fd3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b42fd3();
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 38edc41..44b692f 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b42fd3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b42fd3();
   return;
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 38edc41..44b692f 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b42fd3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b42fd3();
   return;
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 19d253e..f3f3a37 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_b42fd3() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_b42fd3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 1f5972d..3810993 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b42fd3(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_b42fd3(texture2d_array<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_b42fd3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b42fd3(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b42fd3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b42fd3(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b42fd3(tint_symbol_2);
   return;
 }
 
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 09ccb9d..78b35fd 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.spvasm
@@ -1,96 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b42fd3 "textureStore_b42fd3"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %17 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpConstantNull %v4uint
+         %22 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_b42fd3 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_b42fd3 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2uint %arg_1
+         %27 = OpCompositeExtract %uint %26 0
+         %28 = OpCompositeExtract %uint %26 1
+         %29 = OpLoad %uint %arg_2
+         %30 = OpCompositeConstruct %v3uint %27 %28 %29
+         %31 = OpLoad %v4uint %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_b42fd3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_b42fd3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_b42fd3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_b42fd3
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = 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 3619cb1..4db9173 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b42fd3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b42fd3();
diff --git a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl
index 08bbd56..28b485b 100644
--- a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b4389e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b4389e();
diff --git a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.dxc.hlsl
index abbcee0..d3c6279 100644
--- a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b4389e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b4389e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.fxc.hlsl
index abbcee0..d3c6279 100644
--- a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b4389e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b4389e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.glsl
index a99f5aa..537118b 100644
--- a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_b4389e() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_b4389e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.msl
index 44750aa..d957408 100644
--- a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b4389e(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_b4389e(texture3d<float, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_b4389e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b4389e(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b4389e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b4389e(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b4389e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.spvasm
index 178dbb5..bc93cdc 100644
--- a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b4389e "textureStore_b4389e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
-%textureStore_b4389e = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %19
-               OpStore %arg_2 %24
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v3uint %arg_1
-         %30 = OpLoad %v4float %arg_2
-         %31 = OpVectorShuffle %v4float %30 %30 2 1 0 3
-               OpImageWrite %28 %29 %31
+         %21 = OpConstantNull %v4float
+%textureStore_b4389e = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+         %26 = OpVectorShuffle %v4float %25 %25 2 1 0 3
+               OpImageWrite %23 %24 %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_b4389e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_b4389e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_b4389e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_b4389e
+%compute_main = OpFunction %void None %5
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_b4389e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.wgsl
index 2b31a12..97db2a7 100644
--- a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b4389e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b4389e();
diff --git a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl
index 7386962..5b035bc 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b706b1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b706b1();
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 1bf96c6..140b8a1 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b706b1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b706b1();
   return;
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 1bf96c6..140b8a1 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b706b1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b706b1();
   return;
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 35588a3..b5f7bf4 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage3D arg_0;
-void textureStore_b706b1() {
-  ivec3 arg_1 = ivec3(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_b706b1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 fed5f14..e85e5bb 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b706b1(texture3d<int, access::write> tint_symbol_1) {
+void textureStore_b706b1(texture3d<int, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_b706b1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b706b1(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b706b1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b706b1(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b706b1(tint_symbol_2);
   return;
 }
 
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 363567e..55eb4f4 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b706b1 "textureStore_b706b1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %11 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %14 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %19 = OpConstantNull %v4int
+%textureStore_b706b1 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_b706b1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_b706b1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_b706b1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_b706b1
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 97673b3..0b1a161 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b706b1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b706b1();
diff --git a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl
index 4292159..cd58cbb 100644
--- a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b70ded();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b70ded();
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 35b8e6e..029a214 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b70ded();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b70ded();
   return;
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 35b8e6e..029a214 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b70ded();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b70ded();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.glsl
index 85455dd..e91f2f2 100644
--- a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_b70ded() {
-  uint arg_1 = 1u;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_b70ded();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 6256f77..7ab1690 100644
--- a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b70ded(texture1d<uint, access::write> tint_symbol_1) {
+void textureStore_b70ded(texture1d<uint, access::write> tint_symbol) {
   uint arg_1 = 1u;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_b70ded(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b70ded(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b70ded(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b70ded(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b70ded(tint_symbol_2);
   return;
 }
 
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 5beaa6b..2978018 100644
--- a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b70ded "textureStore_b70ded"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %12 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %25
+         %17 = OpConstantNull %v4uint
+%textureStore_b70ded = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %17
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %uint %arg_1
+         %21 = OpLoad %v4uint %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_b70ded
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_b70ded
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_b70ded
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_b70ded
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 165633c..7ec1fad 100644
--- a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b70ded();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b70ded();
diff --git a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl
index 40013b53..111fdc2 100644
--- a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b71c13();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b71c13();
diff --git a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.dxc.hlsl
index ed994ff..4f37de4 100644
--- a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b71c13();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b71c13();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.fxc.hlsl
index ed994ff..4f37de4 100644
--- a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b71c13();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b71c13();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.msl
index 6ebed00..e2cf8ab 100644
--- a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b71c13(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_b71c13(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_b71c13(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b71c13(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b71c13(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b71c13(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b71c13(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.spvasm
index e35d946..e0073e7 100644
--- a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b71c13 "textureStore_b71c13"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-%textureStore_b71c13 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_b71c13 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_b71c13
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_b71c13
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_b71c13
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_b71c13
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_b71c13
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.wgsl
index c36b150..79b5c3a 100644
--- a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b71c13();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b71c13();
diff --git a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl
index 55c428d..bfef3b5 100644
--- a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b7232c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b7232c();
diff --git a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.dxc.hlsl
index 0584338..a91f555 100644
--- a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b7232c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b7232c();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.fxc.hlsl
index 0584338..a91f555 100644
--- a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b7232c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b7232c();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.glsl
index 0cbb34c..81cf0ac 100644
--- a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2D arg_0;
-void textureStore_b7232c() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_b7232c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.msl
index d5bbc5d..bd8f83e 100644
--- a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b7232c(texture1d<float, access::read_write> tint_symbol_1) {
+void textureStore_b7232c(texture1d<float, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::read_write> tint_symbol_2) {
-  textureStore_b7232c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b7232c(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b7232c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b7232c(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b7232c(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.spvasm
index d4265c0..f173dc7 100644
--- a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.spvasm
@@ -1,82 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b7232c "textureStore_b7232c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %v4float
-%textureStore_b7232c = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_b7232c = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_b7232c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_b7232c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_b7232c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_b7232c
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_b7232c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.wgsl
index 550edfc..539283a 100644
--- a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b7232c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b7232c();
diff --git a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl
index 97eb35e..c64b954 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b76ff3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b76ff3();
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 f95c998..7f913e8 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b76ff3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b76ff3();
   return;
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 f95c998..7f913e8 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b76ff3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b76ff3();
   return;
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 4cfe7b3..7815e9d 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_b76ff3() {
-  uvec2 arg_1 = uvec2(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_b76ff3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 c60afc3..4a5dc21 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b76ff3(texture2d<int, access::write> tint_symbol_1) {
+void textureStore_b76ff3(texture2d<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_b76ff3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b76ff3(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b76ff3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b76ff3(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b76ff3(tint_symbol_2);
   return;
 }
 
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 600e596..ee0868e 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b76ff3 "textureStore_b76ff3"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %21 = OpConstantNull %v4int
+%textureStore_b76ff3 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_b76ff3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_b76ff3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_b76ff3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_b76ff3
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 590b81a..725bb3a 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b76ff3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b76ff3();
diff --git a/test/tint/builtins/gen/var/textureStore/b77161.wgsl b/test/tint/builtins/gen/var/textureStore/b77161.wgsl
index f0f4bbd..2d65951 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b77161();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b77161();
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 cb88ecb..c34223d 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b77161();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b77161();
   return;
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 cb88ecb..c34223d 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b77161();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b77161();
   return;
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 2b93c27..ad616da 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b77161(texture1d<uint, access::write> tint_symbol_1) {
+void textureStore_b77161(texture1d<uint, access::write> tint_symbol) {
   uint arg_1 = 1u;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_b77161(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b77161(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b77161(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b77161(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b77161(tint_symbol_2);
   return;
 }
 
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 743b5c7..7140483 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b77161 "textureStore_b77161"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %12 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %25
+         %17 = OpConstantNull %v4uint
+%textureStore_b77161 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %17
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %uint %arg_1
+         %21 = OpLoad %v4uint %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_b77161
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_b77161
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_b77161
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_b77161
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 1d7c24f..a76127b 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b77161();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b77161();
diff --git a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl
index 4cf96ee..6cc27a8 100644
--- a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b89ffb();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b89ffb();
diff --git a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.dxc.hlsl
index 2a694c7..10d07d9 100644
--- a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b89ffb();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b89ffb();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.fxc.hlsl
index 2a694c7..10d07d9 100644
--- a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b89ffb();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b89ffb();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.glsl
index 2a9679c..2eb4ac5 100644
--- a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_b89ffb() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_b89ffb();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.msl
index d54729d..f1bc8d5 100644
--- a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b89ffb(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_b89ffb(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_b89ffb(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b89ffb(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b89ffb(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b89ffb(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b89ffb(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.spvasm
index 1a8374c..3fb2eac 100644
--- a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b89ffb "textureStore_b89ffb"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-%textureStore_b89ffb = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_b89ffb = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
-         %42 = OpVectorShuffle %v4float %41 %41 2 1 0 3
-               OpImageWrite %33 %40 %42
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+         %37 = OpVectorShuffle %v4float %36 %36 2 1 0 3
+               OpImageWrite %28 %35 %37
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_b89ffb
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_b89ffb
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_b89ffb
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_b89ffb
+%compute_main = OpFunction %void None %5
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_b89ffb
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.wgsl
index e338603..43dac74 100644
--- a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b89ffb();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b89ffb();
diff --git a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl
index 5e6685f..48441b4 100644
--- a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl
@@ -45,12 +45,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b91b86();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b91b86();
diff --git a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.dxc.hlsl
index a2cacf3..b47c05d 100644
--- a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b91b86();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b91b86();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.fxc.hlsl
index a2cacf3..b47c05d 100644
--- a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b91b86();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b91b86();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.msl
index 62e66f1..b91fc52c 100644
--- a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b91b86(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_b91b86(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_b91b86(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b91b86(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b91b86(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b91b86(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b91b86(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.spvasm
index 829e135..bca4433 100644
--- a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.spvasm
@@ -1,98 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b91b86 "textureStore_b91b86"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-%textureStore_b91b86 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_b91b86 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_b91b86
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_b91b86
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_b91b86
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_b91b86
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_b91b86
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.wgsl
index a813fdb..6b25f35 100644
--- a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.wgsl
@@ -9,12 +9,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b91b86();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b91b86();
diff --git a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl
index b5e2b39..1470442 100644
--- a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b9c81a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b9c81a();
diff --git a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.dxc.hlsl
index b51cb9e..a9ede34 100644
--- a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b9c81a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b9c81a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.fxc.hlsl
index b51cb9e..a9ede34 100644
--- a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b9c81a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b9c81a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.msl
index 13c5c2b..7c0ad52 100644
--- a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b9c81a(texture3d<uint, access::read_write> tint_symbol_1) {
+void textureStore_b9c81a(texture3d<uint, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_b9c81a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b9c81a(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b9c81a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b9c81a(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b9c81a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.spvasm
index 00770da..1cdbc94 100644
--- a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b9c81a "textureStore_b9c81a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %23 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_b9c81a = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4uint
+%textureStore_b9c81a = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_b9c81a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_b9c81a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_b9c81a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_b9c81a
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_b9c81a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.wgsl
index 3b7bfe2..b4efd1b 100644
--- a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b9c81a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b9c81a();
diff --git a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl
index 8250130..4c0f8a3 100644
--- a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b9d863();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b9d863();
diff --git a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.dxc.hlsl
index 87ac031..d70f41a 100644
--- a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b9d863();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b9d863();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.fxc.hlsl
index 87ac031..d70f41a 100644
--- a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_b9d863();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_b9d863();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.glsl
index 4a0da8c..5977ccf 100644
--- a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_b9d863() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_b9d863();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.msl
index 695cc8c..eb9b54c 100644
--- a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_b9d863(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_b9d863(texture2d_array<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_b9d863(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_b9d863(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_b9d863(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_b9d863(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_b9d863(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.spvasm
index 753f6ee..42faae8 100644
--- a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.spvasm
@@ -1,97 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_b9d863 "textureStore_b9d863"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %26 = OpConstantNull %int
+         %18 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_b9d863 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_b9d863 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_b9d863
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_b9d863
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_b9d863
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_b9d863
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_b9d863
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.wgsl
index 383ee77..2285d20 100644
--- a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b9d863();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_b9d863();
diff --git a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl
index 7d456c4..d0835d5 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bbcb7f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bbcb7f();
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 300000b..cf08a57 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bbcb7f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bbcb7f();
   return;
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 300000b..cf08a57 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bbcb7f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bbcb7f();
   return;
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 4b447b8..3b24532 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_bbcb7f() {
-  ivec2 arg_1 = ivec2(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_bbcb7f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 16f0357..eddd416 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_bbcb7f(texture2d<int, access::write> tint_symbol_1) {
+void textureStore_bbcb7f(texture2d<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
-  textureStore_bbcb7f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_bbcb7f(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_bbcb7f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_bbcb7f(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_bbcb7f(tint_symbol_2);
   return;
 }
 
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 f3aaa71..4aed7e4 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_bbcb7f "textureStore_bbcb7f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %19 = OpConstantNull %v4int
+%textureStore_bbcb7f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_bbcb7f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_bbcb7f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_bbcb7f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_bbcb7f
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 1fa51e6..2bbdcb0 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bbcb7f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bbcb7f();
diff --git a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl
index 7a54460..62a4783 100644
--- a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bc1423();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bc1423();
diff --git a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.dxc.hlsl
index fa20a63..06c6230 100644
--- a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bc1423();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bc1423();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.fxc.hlsl
index fa20a63..06c6230 100644
--- a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bc1423();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bc1423();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.glsl
index 1277db4..1a4fc15 100644
--- a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_bc1423() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_bc1423();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.msl
index e6907db..75d5409 100644
--- a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_bc1423(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_bc1423(texture2d_array<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_bc1423(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_bc1423(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_bc1423(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_bc1423(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_bc1423(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.spvasm
index 5c7e07b..b6ff60f 100644
--- a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_bc1423 "textureStore_bc1423"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_bc1423 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_bc1423 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_bc1423
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_bc1423
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_bc1423
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_bc1423
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_bc1423
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.wgsl
index 3b0334f..efb9034 100644
--- a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bc1423();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bc1423();
diff --git a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl
index e5cdf30..10fb43a 100644
--- a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bcc97a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bcc97a();
diff --git a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.dxc.hlsl
index a8a5b99..c821b0d 100644
--- a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bcc97a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bcc97a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.fxc.hlsl
index a8a5b99..c821b0d 100644
--- a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bcc97a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bcc97a();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.glsl
index cc3937d..c1e9da5 100644
--- a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2D arg_0;
-void textureStore_bcc97a() {
-  ivec2 arg_1 = ivec2(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_bcc97a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.msl
index b73bac2..7d8c727 100644
--- a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_bcc97a(texture2d<int, access::read_write> tint_symbol_1) {
+void textureStore_bcc97a(texture2d<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_bcc97a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_bcc97a(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_bcc97a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_bcc97a(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_bcc97a(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.spvasm
index dd737b4..5f5ef61 100644
--- a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_bcc97a "textureStore_bcc97a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_bcc97a = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4int
+%textureStore_bcc97a = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_bcc97a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_bcc97a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_bcc97a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_bcc97a
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_bcc97a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.wgsl
index c4b928d..ccad0ac 100644
--- a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bcc97a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bcc97a();
diff --git a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl
index 9d1e27a..8a23e2d 100644
--- a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bd6602();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bd6602();
diff --git a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.dxc.hlsl
index c995aa1..e40bb9f 100644
--- a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bd6602();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bd6602();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.fxc.hlsl
index c995aa1..e40bb9f 100644
--- a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bd6602();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bd6602();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.msl
index bd58f64..254a560 100644
--- a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_bd6602(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_bd6602(texture2d_array<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_bd6602(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_bd6602(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_bd6602(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_bd6602(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_bd6602(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.spvasm
index 6a2e18c..570adab 100644
--- a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_bd6602 "textureStore_bd6602"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_bd6602 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_bd6602 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_bd6602
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_bd6602
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_bd6602
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_bd6602
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_bd6602
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.wgsl
index 2da15d1..99b6709 100644
--- a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bd6602();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bd6602();
diff --git a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl
index e786956..36737f3 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_be6e30();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_be6e30();
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 3a9b238..0bcfb96 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_be6e30();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_be6e30();
   return;
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 3a9b238..0bcfb96 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_be6e30();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_be6e30();
   return;
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 d936ab9..ad8a5e9 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_be6e30() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_be6e30();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 87c31cb..3d7ebda 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_be6e30(texture2d<float, access::write> tint_symbol_1) {
+void textureStore_be6e30(texture2d<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
-  textureStore_be6e30(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_be6e30(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_be6e30(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_be6e30(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_be6e30(tint_symbol_2);
   return;
 }
 
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 e9e6149..55d892d 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_be6e30 "textureStore_be6e30"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_be6e30 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_be6e30
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_be6e30
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_be6e30
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_be6e30
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 523c97d..98e59cb 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_be6e30();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_be6e30();
diff --git a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl
index 9414f34..126a578 100644
--- a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bedbfc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bedbfc();
diff --git a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.dxc.hlsl
index 17ebcdc..6afd9c7 100644
--- a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bedbfc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bedbfc();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.fxc.hlsl
index 17ebcdc..6afd9c7 100644
--- a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bedbfc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bedbfc();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.glsl
index f6d5bc3..1157064 100644
--- a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image3D arg_0;
-void textureStore_bedbfc() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_bedbfc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.msl
index ec97999..4176f6c 100644
--- a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_bedbfc(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_bedbfc(texture3d<float, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_bedbfc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_bedbfc(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_bedbfc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_bedbfc(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_bedbfc(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.spvasm
index 1f96712..412d0c4 100644
--- a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.spvasm
@@ -1,85 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_bedbfc "textureStore_bedbfc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
-%textureStore_bedbfc = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %19
-               OpStore %arg_2 %24
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v3int %arg_1
-         %30 = OpLoad %v4float %arg_2
-         %31 = OpVectorShuffle %v4float %30 %30 2 1 0 3
-               OpImageWrite %28 %29 %31
+         %21 = OpConstantNull %v4float
+%textureStore_bedbfc = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+         %26 = OpVectorShuffle %v4float %25 %25 2 1 0 3
+               OpImageWrite %23 %24 %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_bedbfc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_bedbfc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_bedbfc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_bedbfc
+%compute_main = OpFunction %void None %5
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_bedbfc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.wgsl
index 11005fc..fe48b63 100644
--- a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bedbfc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bedbfc();
diff --git a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl
index 9120477..7bdf4ef 100644
--- a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bf775c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bf775c();
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 12118a4..e5c2280 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bf775c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bf775c();
   return;
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 12118a4..e5c2280 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_bf775c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_bf775c();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.glsl
index 7c07d09..8f5cf47 100644
--- a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_bf775c() {
-  int arg_1 = 1;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_bf775c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 b918a1f..e77274c 100644
--- a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_bf775c(texture1d<int, access::write> tint_symbol_1) {
+void textureStore_bf775c(texture1d<int, access::write> tint_symbol) {
   int arg_1 = 1;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_bf775c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_bf775c(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_bf775c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_bf775c(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_bf775c(tint_symbol_2);
   return;
 }
 
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 d9b4438..cd82d06 100644
--- a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_bf775c "textureStore_bf775c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %12 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %25
+         %17 = OpConstantNull %v4int
+%textureStore_bf775c = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %17
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %int %arg_1
+         %21 = OpLoad %v4int %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_bf775c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_bf775c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_bf775c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_bf775c
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 d9e173e..be3c30e 100644
--- a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bf775c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_bf775c();
diff --git a/test/tint/builtins/gen/var/textureStore/c06463.wgsl b/test/tint/builtins/gen/var/textureStore/c06463.wgsl
index 350a278..c20dc1f 100644
--- a/test/tint/builtins/gen/var/textureStore/c06463.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c06463.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c06463();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c06463();
diff --git a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.dxc.hlsl
index 0605111..3cb8332 100644
--- a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c06463();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c06463();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.fxc.hlsl
index 0605111..3cb8332 100644
--- a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c06463();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c06463();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.glsl
index 95fdcc5..a03c6f4 100644
--- a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_c06463() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_c06463();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.msl
index f1c723a..3d3b864 100644
--- a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c06463(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_c06463(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_c06463(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c06463(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c06463(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c06463(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c06463(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.spvasm
index 8809876..86625ef 100644
--- a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.spvasm
@@ -1,94 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c06463 "textureStore_c06463"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
-%textureStore_c06463 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_c06463 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-         %39 = OpVectorShuffle %v4float %38 %38 2 1 0 3
-               OpImageWrite %31 %37 %39
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+         %34 = OpVectorShuffle %v4float %33 %33 2 1 0 3
+               OpImageWrite %26 %32 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_c06463
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_c06463
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_c06463
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_c06463
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_c06463
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.wgsl
index b2b5b0f..edc36dd 100644
--- a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c06463();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c06463();
diff --git a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl
index 114b736..b770f1c 100644
--- a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c1c664();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c1c664();
diff --git a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.dxc.hlsl
index a1ce247..579b566 100644
--- a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c1c664();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c1c664();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.fxc.hlsl
index a1ce247..579b566 100644
--- a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c1c664();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c1c664();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.glsl
index b2fd477..b3d745c 100644
--- a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_c1c664() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_c1c664();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.msl
index dea2fb4..6ced8f6 100644
--- a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c1c664(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_c1c664(texture2d<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_c1c664(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c1c664(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c1c664(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c1c664(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c1c664(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.spvasm
index fe285de..8af1bcc 100644
--- a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c1c664 "textureStore_c1c664"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_c1c664 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_c1c664 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_c1c664
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_c1c664
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_c1c664
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_c1c664
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_c1c664
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.wgsl
index 291adb5..0b38ed1 100644
--- a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c1c664();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c1c664();
diff --git a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl
index 90f82e8d3..b9e32ed 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c1f29e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c1f29e();
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 6cca994..3787bad 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c1f29e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c1f29e();
   return;
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 6cca994..3787bad 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c1f29e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c1f29e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.glsl
index 110ab60..5f92ab8 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2D arg_0;
-void textureStore_c1f29e() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_c1f29e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 b90cc9c..2d1bb7c 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c1f29e(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_c1f29e(texture1d<float, access::write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_c1f29e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c1f29e(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c1f29e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c1f29e(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c1f29e(tint_symbol_2);
   return;
 }
 
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 937da13..4224a91 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c1f29e "textureStore_c1f29e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = 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
+         %19 = OpConstantNull %v4float
+%textureStore_c1f29e = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_c1f29e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_c1f29e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_c1f29e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_c1f29e
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 b302fbe..cdc91e4 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c1f29e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c1f29e();
diff --git a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl
index 3a418a3..bb916b3 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c1f760();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c1f760();
diff --git a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.dxc.hlsl
index dae4dc6..43eaf76 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c1f760();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c1f760();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.fxc.hlsl
index dae4dc6..43eaf76 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c1f760();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c1f760();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.glsl
index 9699317..7550a12 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_c1f760() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_c1f760();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.msl
index f6ef40e..2180ff8 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c1f760(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_c1f760(texture2d_array<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_c1f760(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c1f760(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c1f760(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c1f760(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c1f760(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.spvasm
index a17b6a5..230b479 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.spvasm
@@ -1,95 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c1f760 "textureStore_c1f760"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %17 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpConstantNull %v4uint
+         %22 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_c1f760 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_c1f760 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2uint %arg_1
+         %27 = OpCompositeExtract %uint %26 0
+         %28 = OpCompositeExtract %uint %26 1
+         %29 = OpLoad %uint %arg_2
+         %30 = OpCompositeConstruct %v3uint %27 %28 %29
+         %31 = OpLoad %v4uint %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_c1f760
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_c1f760
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_c1f760
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_c1f760
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_c1f760
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.wgsl
index 6a8770c..6820bbc 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c1f760();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c1f760();
diff --git a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl
index 804f6c0..29ee7dd 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c2ca46();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c2ca46();
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 898b219..bbbba43 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c2ca46();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c2ca46();
   return;
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 898b219..bbbba43 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c2ca46();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c2ca46();
   return;
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 99d847d..3c18bb0 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_c2ca46() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_c2ca46();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 711aa8e..ffe235c 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c2ca46(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_c2ca46(texture2d_array<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_c2ca46(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c2ca46(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c2ca46(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c2ca46(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c2ca46(tint_symbol_2);
   return;
 }
 
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 9824af59..ab73502 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c2ca46 "textureStore_c2ca46"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %26 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_c2ca46 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_c2ca46 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_c2ca46
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_c2ca46
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_c2ca46
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_c2ca46
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 621ebe8..7d19633 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c2ca46();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c2ca46();
diff --git a/test/tint/builtins/gen/var/textureStore/c32905.wgsl b/test/tint/builtins/gen/var/textureStore/c32905.wgsl
index 1f7eb67..5b84317 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c32905();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c32905();
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 35d1967..4050aef 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c32905();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c32905();
   return;
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 35d1967..4050aef 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c32905();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c32905();
   return;
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 1e67fa9..a0ef66a 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_c32905() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_c32905();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 59fd22c..1e16322 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c32905(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_c32905(texture2d_array<int, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_c32905(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c32905(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c32905(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c32905(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c32905(tint_symbol_2);
   return;
 }
 
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 6b25e8c..fea82a4 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c32905 "textureStore_c32905"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_c32905 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_c32905 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_c32905
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_c32905
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_c32905
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_c32905
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 d8002b4..7cc5249 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c32905();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c32905();
diff --git a/test/tint/builtins/gen/var/textureStore/c33478.wgsl b/test/tint/builtins/gen/var/textureStore/c33478.wgsl
index 24d05c2..1dc5939 100644
--- a/test/tint/builtins/gen/var/textureStore/c33478.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c33478.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c33478();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c33478();
diff --git a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.dxc.hlsl
index c354199..ea602e6 100644
--- a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c33478();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c33478();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.fxc.hlsl
index c354199..ea602e6 100644
--- a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c33478();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c33478();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.msl
index e5ae32e..c1e470e 100644
--- a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c33478(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_c33478(texture3d<float, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_c33478(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c33478(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c33478(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c33478(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c33478(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.spvasm
index 8814631..763c127 100644
--- a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c33478 "textureStore_c33478"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_c33478 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_c33478 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_c33478
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_c33478
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_c33478
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_c33478
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_c33478
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.wgsl
index 68e9b06..0718368 100644
--- a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c33478();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c33478();
diff --git a/test/tint/builtins/gen/var/textureStore/c35268.wgsl b/test/tint/builtins/gen/var/textureStore/c35268.wgsl
index 34d5b90..bde4bc7 100644
--- a/test/tint/builtins/gen/var/textureStore/c35268.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c35268.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c35268();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c35268();
diff --git a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.dxc.hlsl
index 423f26d..e813a04 100644
--- a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c35268();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c35268();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.fxc.hlsl
index 423f26d..e813a04 100644
--- a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c35268();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c35268();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.glsl
index 202b597..79f4638 100644
--- a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp uimage2DArray arg_0;
-void textureStore_c35268() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_c35268();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.msl
index 443748d..54dae0a 100644
--- a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c35268(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_c35268(texture2d_array<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_c35268(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c35268(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c35268(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c35268(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c35268(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.spvasm
index a3cb616..c395e95 100644
--- a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c35268 "textureStore_c35268"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_c35268 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_c35268 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_c35268
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_c35268
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_c35268
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_c35268
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_c35268
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.wgsl
index 31bd62f..11fe07b 100644
--- a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c35268();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c35268();
diff --git a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl
index c76a6d9..b446c79 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c5af1e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c5af1e();
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 329988e..32c8fbf 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c5af1e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c5af1e();
   return;
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 329988e..32c8fbf 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c5af1e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c5af1e();
   return;
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 1b326b5..371ac81 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image3D arg_0;
-void textureStore_c5af1e() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_c5af1e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 1abb310..5b2d7fb 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c5af1e(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_c5af1e(texture3d<float, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_c5af1e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c5af1e(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c5af1e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c5af1e(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c5af1e(tint_symbol_2);
   return;
 }
 
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 cbb579c..d340af6 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c5af1e "textureStore_c5af1e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_c5af1e = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_c5af1e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_c5af1e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_c5af1e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_c5af1e
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 71ea840..5d3956e 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c5af1e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c5af1e();
diff --git a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl
index c12b1cd..9452c08 100644
--- a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c63f05();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c63f05();
diff --git a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.dxc.hlsl
index f3d5006..2a00af1 100644
--- a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c63f05();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c63f05();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.fxc.hlsl
index f3d5006..2a00af1 100644
--- a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c63f05();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c63f05();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.glsl
index f5ee04d..ebee442 100644
--- a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_c63f05() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_c63f05();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.msl
index 25bf444..999bbf8 100644
--- a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c63f05(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_c63f05(texture2d_array<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_c63f05(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c63f05(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c63f05(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c63f05(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c63f05(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.spvasm
index ed15473..8369d4a 100644
--- a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c63f05 "textureStore_c63f05"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_c63f05 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_c63f05 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_c63f05
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_c63f05
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_c63f05
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_c63f05
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_c63f05
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.wgsl
index ed3745b..0bf45d0 100644
--- a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c63f05();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c63f05();
diff --git a/test/tint/builtins/gen/var/textureStore/c79451.wgsl b/test/tint/builtins/gen/var/textureStore/c79451.wgsl
index 8c7f9c6..dc22c3e 100644
--- a/test/tint/builtins/gen/var/textureStore/c79451.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c79451.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c79451();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c79451();
diff --git a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.dxc.hlsl
index 671eaf1..4cfcd39 100644
--- a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c79451();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c79451();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.fxc.hlsl
index 671eaf1..4cfcd39 100644
--- a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c79451();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c79451();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.glsl
index 78098d9..01ace70 100644
--- a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_c79451() {
-  uint arg_1 = 1u;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_c79451();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.msl
index ef3bfc8..c5ca13c 100644
--- a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c79451(texture1d<int, access::read_write> tint_symbol_1) {
+void textureStore_c79451(texture1d<int, access::read_write> tint_symbol) {
   uint arg_1 = 1u;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_c79451(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c79451(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c79451(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c79451(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c79451(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.spvasm
index 9c249d6..d907ba5 100644
--- a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c79451 "textureStore_c79451"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %21 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_c79451 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+         %19 = OpConstantNull %v4int
+%textureStore_c79451 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %uint %arg_1
-         %31 = OpLoad %v4int %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_c79451
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_c79451
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_c79451
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_c79451
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_c79451
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.wgsl
index 04ae40b..9f2082b 100644
--- a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c79451();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c79451();
diff --git a/test/tint/builtins/gen/var/textureStore/c863be.wgsl b/test/tint/builtins/gen/var/textureStore/c863be.wgsl
index 1980396..eb65132 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c863be();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c863be();
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 6224f3b..2b85b9f 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c863be();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c863be();
   return;
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 6224f3b..2b85b9f 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c863be();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c863be();
   return;
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 3b0b452..7819bc5 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c863be(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_c863be(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_c863be(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c863be(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c863be(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c863be(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c863be(tint_symbol_2);
   return;
 }
 
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 5787add..7a3c4c8 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.spvasm
@@ -1,95 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c863be "textureStore_c863be"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %18 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
-%textureStore_c863be = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_c863be = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_c863be
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_c863be
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_c863be
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_c863be
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 22fc708..c4a52b5 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c863be();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c863be();
diff --git a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl
index 4aace85..8031908 100644
--- a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c9d780();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c9d780();
diff --git a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.dxc.hlsl
index 7ab0243..2fef903 100644
--- a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c9d780();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c9d780();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.fxc.hlsl
index 7ab0243..2fef903 100644
--- a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_c9d780();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_c9d780();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.glsl
index c61f579..6d40f0c 100644
--- a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_c9d780() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_c9d780();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.msl
index 36ba5ff..e06d714 100644
--- a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_c9d780(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_c9d780(texture1d<float, access::write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_c9d780(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_c9d780(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_c9d780(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_c9d780(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_c9d780(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.spvasm
index 47ab257..0293868 100644
--- a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_c9d780 "textureStore_c9d780"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpTypeFunction %v4float
-%textureStore_c9d780 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_c9d780 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-         %29 = OpVectorShuffle %v4float %28 %28 2 1 0 3
-               OpImageWrite %26 %27 %29
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+         %24 = OpVectorShuffle %v4float %23 %23 2 1 0 3
+               OpImageWrite %21 %22 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_c9d780
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_c9d780
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_c9d780
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_c9d780
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_c9d780
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.wgsl
index f9cf463..ee49621 100644
--- a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c9d780();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_c9d780();
diff --git a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl
index e61a3a3..3c5188a 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_cb3b0b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_cb3b0b();
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 e2493fa..f2d18ef 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_cb3b0b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_cb3b0b();
   return;
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 e2493fa..f2d18ef 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_cb3b0b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_cb3b0b();
   return;
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 299c62c..c1539ee 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage3D arg_0;
-void textureStore_cb3b0b() {
-  uvec3 arg_1 = uvec3(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_cb3b0b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 c3fa3cea..8b734f4 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_cb3b0b(texture3d<int, access::write> tint_symbol_1) {
+void textureStore_cb3b0b(texture3d<int, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_cb3b0b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_cb3b0b(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_cb3b0b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_cb3b0b(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_cb3b0b(tint_symbol_2);
   return;
 }
 
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 0c3ca78..9d7af18 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_cb3b0b "textureStore_cb3b0b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %23 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %21 = OpConstantNull %v4int
+%textureStore_cb3b0b = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_cb3b0b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_cb3b0b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_cb3b0b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_cb3b0b
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 f7148a3..bf5b8d4 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_cb3b0b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_cb3b0b();
diff --git a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl
index f289fd0..0c71694 100644
--- a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ccac20();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ccac20();
diff --git a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.dxc.hlsl
index da18930..3d5cc00 100644
--- a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ccac20();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ccac20();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.fxc.hlsl
index da18930..3d5cc00 100644
--- a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ccac20();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ccac20();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.glsl
index 0bbd959..66c9db9 100644
--- a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2D arg_0;
-void textureStore_ccac20() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_ccac20();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.msl
index a9adeee..764e65f 100644
--- a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ccac20(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_ccac20(texture2d<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_ccac20(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ccac20(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ccac20(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ccac20(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ccac20(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.spvasm
index 742abef..975f2e2 100644
--- a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ccac20 "textureStore_ccac20"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_ccac20 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_ccac20 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_ccac20
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_ccac20
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_ccac20
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_ccac20
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_ccac20
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.wgsl
index a3e4d8c..1bdbe65 100644
--- a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ccac20();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ccac20();
diff --git a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl
index b552a90..048e14e 100644
--- a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_cd6755();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_cd6755();
diff --git a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.dxc.hlsl
index 1c7b029..ced32ac 100644
--- a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_cd6755();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_cd6755();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.fxc.hlsl
index 1c7b029..ced32ac 100644
--- a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_cd6755();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_cd6755();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.glsl
index d96a0b7..540808b 100644
--- a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_cd6755() {
-  uvec3 arg_1 = uvec3(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_cd6755();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.msl
index de0c7a8..8cb3d17 100644
--- a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_cd6755(texture3d<uint, access::write> tint_symbol_1) {
+void textureStore_cd6755(texture3d<uint, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_cd6755(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_cd6755(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_cd6755(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_cd6755(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_cd6755(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.spvasm
index 651a05d..82aeb89 100644
--- a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_cd6755 "textureStore_cd6755"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %11 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %14 = OpConstantNull %v3uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_cd6755 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint 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 %v3uint %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+         %19 = OpConstantNull %v4uint
+%textureStore_cd6755 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_cd6755
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_cd6755
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_cd6755
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_cd6755
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_cd6755
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.wgsl
index 8c6cbdb..c642b65 100644
--- a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_cd6755();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_cd6755();
diff --git a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl
index 23e8e60..ba947eb 100644
--- a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ceb832();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ceb832();
diff --git a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.dxc.hlsl
index 5860434..9669815 100644
--- a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ceb832();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ceb832();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.fxc.hlsl
index 5860434..9669815 100644
--- a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ceb832();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ceb832();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.glsl
index 208f893..3d95473 100644
--- a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2DArray arg_0;
-void textureStore_ceb832() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_ceb832();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.msl
index b49b250..12e6bc5 100644
--- a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ceb832(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_ceb832(texture2d_array<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_ceb832(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ceb832(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ceb832(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ceb832(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ceb832(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.spvasm
index 8595694..81297e5 100644
--- a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.spvasm
@@ -1,97 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ceb832 "textureStore_ceb832"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %26 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_ceb832 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_ceb832 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_ceb832
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_ceb832
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_ceb832
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_ceb832
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_ceb832
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.wgsl
index e57161f..dfb0fa3 100644
--- a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ceb832();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ceb832();
diff --git a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl
index 58d14c3..668307d 100644
--- a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d0d62c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d0d62c();
diff --git a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.dxc.hlsl
index 47d6b96..ed1a346 100644
--- a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d0d62c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d0d62c();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.fxc.hlsl
index 47d6b96..ed1a346 100644
--- a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d0d62c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d0d62c();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.glsl
index eaa7a61..cf3221a 100644
--- a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_d0d62c() {
-  ivec2 arg_1 = ivec2(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_d0d62c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.msl
index 958af65..61eb516 100644
--- a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d0d62c(texture2d<uint, access::read_write> tint_symbol_1) {
+void textureStore_d0d62c(texture2d<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::read_write> tint_symbol_2) {
-  textureStore_d0d62c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d0d62c(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d0d62c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d0d62c(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d0d62c(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.spvasm
index 6972b81..218bc31 100644
--- a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d0d62c "textureStore_d0d62c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_d0d62c = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4uint
+%textureStore_d0d62c = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_d0d62c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_d0d62c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_d0d62c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_d0d62c
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_d0d62c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.wgsl
index 72cd37e..c57fbf5 100644
--- a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d0d62c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d0d62c();
diff --git a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl
index a47b442..6b1866b 100644
--- a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d0fadc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d0fadc();
diff --git a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.dxc.hlsl
index a668cb8..ca7f968 100644
--- a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d0fadc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d0fadc();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.fxc.hlsl
index a668cb8..ca7f968 100644
--- a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d0fadc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d0fadc();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.glsl
index f77b49a..d6d4079 100644
--- a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_d0fadc() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_d0fadc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.msl
index f7690bc..3ded161 100644
--- a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d0fadc(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_d0fadc(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_d0fadc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d0fadc(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d0fadc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d0fadc(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d0fadc(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.spvasm
index d38fb22..7938440 100644
--- a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.spvasm
@@ -1,96 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d0fadc "textureStore_d0fadc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-%textureStore_d0fadc = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_d0fadc = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_d0fadc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_d0fadc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_d0fadc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_d0fadc
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_d0fadc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.wgsl
index 392d68b..95d224e 100644
--- a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d0fadc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d0fadc();
diff --git a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl
index d8f4f69..fb71bd8 100644
--- a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d19db4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d19db4();
diff --git a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.dxc.hlsl
index 763c258..da07c62 100644
--- a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d19db4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d19db4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.fxc.hlsl
index 763c258..da07c62 100644
--- a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d19db4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d19db4();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.msl
index ce0f232..575a27a 100644
--- a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d19db4(texture3d<int, access::read_write> tint_symbol_1) {
+void textureStore_d19db4(texture3d<int, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_d19db4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d19db4(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d19db4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d19db4(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d19db4(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.spvasm
index fb45c5e..10f8133 100644
--- a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d19db4 "textureStore_d19db4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %11 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %14 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_d19db4 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %19 = OpConstantNull %v4int
+%textureStore_d19db4 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_d19db4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_d19db4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_d19db4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_d19db4
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_d19db4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.wgsl
index 17326e0..70d4d1a 100644
--- a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d19db4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d19db4();
diff --git a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl
index 44d9926..849209f 100644
--- a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d1ab82();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d1ab82();
diff --git a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.dxc.hlsl
index 4be2be1..55bfc4f 100644
--- a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d1ab82();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d1ab82();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.fxc.hlsl
index 4be2be1..55bfc4f 100644
--- a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d1ab82();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d1ab82();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.glsl
index 568605e..6277fb8 100644
--- a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_d1ab82() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_d1ab82();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.msl
index 0256695..528f59d 100644
--- a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d1ab82(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_d1ab82(texture2d<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_d1ab82(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d1ab82(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d1ab82(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d1ab82(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d1ab82(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.spvasm
index d097f90..7ec4e42 100644
--- a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d1ab82 "textureStore_d1ab82"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_d1ab82 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_d1ab82 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_d1ab82
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_d1ab82
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_d1ab82
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_d1ab82
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_d1ab82
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.wgsl
index f8e24c3..c73e080 100644
--- a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d1ab82();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d1ab82();
diff --git a/test/tint/builtins/gen/var/textureStore/d26166.wgsl b/test/tint/builtins/gen/var/textureStore/d26166.wgsl
index bc61ff7..1f44cd8 100644
--- a/test/tint/builtins/gen/var/textureStore/d26166.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d26166.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d26166();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d26166();
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 4feec02..9e06cde 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d26166();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d26166();
   return;
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 4feec02..9e06cde 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d26166();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d26166();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.glsl
index 95afce5..c2d5249 100644
--- a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_d26166() {
-  uint arg_1 = 1u;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_d26166();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 121c532..e67edd0 100644
--- a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d26166(texture1d<uint, access::write> tint_symbol_1) {
+void textureStore_d26166(texture1d<uint, access::write> tint_symbol) {
   uint arg_1 = 1u;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_d26166(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d26166(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d26166(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d26166(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d26166(tint_symbol_2);
   return;
 }
 
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 ee06594..4cd0dad 100644
--- a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d26166 "textureStore_d26166"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %12 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %14 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %25
+         %17 = OpConstantNull %v4uint
+%textureStore_d26166 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %17
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %uint %arg_1
+         %21 = OpLoad %v4uint %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_d26166
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_d26166
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_d26166
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_d26166
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 ce91750..a3bc5f2 100644
--- a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d26166();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d26166();
diff --git a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl
index 43598bc..c6b4782 100644
--- a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d2b565();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d2b565();
diff --git a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.dxc.hlsl
index 5b73c2c..19b2496 100644
--- a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d2b565();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d2b565();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.fxc.hlsl
index 5b73c2c..19b2496 100644
--- a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d2b565();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d2b565();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.glsl
index b81a864..acabaab 100644
--- a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_d2b565() {
-  uvec3 arg_1 = uvec3(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_d2b565();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.msl
index 1e7ab29..c07f6d4 100644
--- a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d2b565(texture3d<uint, access::write> tint_symbol_1) {
+void textureStore_d2b565(texture3d<uint, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_d2b565(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d2b565(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d2b565(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d2b565(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d2b565(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.spvasm
index 156622d..a47b23d 100644
--- a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d2b565 "textureStore_d2b565"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %11 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %14 = OpConstantNull %v3uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_d2b565 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint 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 %v3uint %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+         %19 = OpConstantNull %v4uint
+%textureStore_d2b565 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_d2b565
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_d2b565
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_d2b565
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_d2b565
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_d2b565
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.wgsl
index fd9e2b3..9c71bb5f 100644
--- a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d2b565();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d2b565();
diff --git a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl
index e9daf91..787d8bd 100644
--- a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d3a22b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d3a22b();
diff --git a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.dxc.hlsl
index 843e589..e6d026a 100644
--- a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d3a22b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d3a22b();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.fxc.hlsl
index 843e589..e6d026a 100644
--- a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d3a22b();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d3a22b();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.glsl
index c8fc22c..71aeec8 100644
--- a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_d3a22b() {
-  uvec3 arg_1 = uvec3(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_d3a22b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.msl
index 8767c03..4ace72d 100644
--- a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d3a22b(texture3d<uint, access::read_write> tint_symbol_1) {
+void textureStore_d3a22b(texture3d<uint, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::read_write> tint_symbol_2) {
-  textureStore_d3a22b(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d3a22b(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d3a22b(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d3a22b(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d3a22b(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.spvasm
index 4076f36..71d40bd 100644
--- a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d3a22b "textureStore_d3a22b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %11 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %14 = OpConstantNull %v3uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_d3a22b = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint 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 %v3uint %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+         %19 = OpConstantNull %v4uint
+%textureStore_d3a22b = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_d3a22b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_d3a22b
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_d3a22b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_d3a22b
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_d3a22b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.wgsl
index 721fd409..e9925c6 100644
--- a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d3a22b();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d3a22b();
diff --git a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl
index b72d4c0..2cbb471 100644
--- a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d4aa95();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d4aa95();
diff --git a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.dxc.hlsl
index 7c81cfd..f22f177 100644
--- a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d4aa95();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d4aa95();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.fxc.hlsl
index 7c81cfd..f22f177 100644
--- a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d4aa95();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d4aa95();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.glsl
index ad4fec0..7de1fe4 100644
--- a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_d4aa95() {
-  uvec3 arg_1 = uvec3(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_d4aa95();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.msl
index 74abfdb..cdb97bb 100644
--- a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d4aa95(texture3d<uint, access::write> tint_symbol_1) {
+void textureStore_d4aa95(texture3d<uint, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_d4aa95(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d4aa95(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d4aa95(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d4aa95(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d4aa95(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.spvasm
index 9fc8fd1..9a5dd5b 100644
--- a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d4aa95 "textureStore_d4aa95"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %11 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %14 = OpConstantNull %v3uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_d4aa95 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint 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 %v3uint %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+         %19 = OpConstantNull %v4uint
+%textureStore_d4aa95 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_d4aa95
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_d4aa95
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_d4aa95
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_d4aa95
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_d4aa95
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.wgsl
index 15d8887..8ed54fd 100644
--- a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d4aa95();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d4aa95();
diff --git a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl
index d3c5a0a..50f8e6f 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d55e65();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d55e65();
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 79c63fa..b8d9839 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d55e65();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d55e65();
   return;
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 79c63fa..b8d9839 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d55e65();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d55e65();
   return;
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 fb6e128..ca042b36 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_d55e65() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_d55e65();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 4150e81..4593bf5 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d55e65(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_d55e65(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_d55e65(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d55e65(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d55e65(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d55e65(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d55e65(tint_symbol_2);
   return;
 }
 
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 a2014a6..23a400d 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d55e65 "textureStore_d55e65"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-%textureStore_d55e65 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_d55e65 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_d55e65
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_d55e65
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_d55e65
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_d55e65
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = 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 a3cea00..f6454e0 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d55e65();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d55e65();
diff --git a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl
index 67195fc..21e55b8 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d73b5c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d73b5c();
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 9401fe2..cf0d7ba 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d73b5c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d73b5c();
   return;
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 9401fe2..cf0d7ba 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d73b5c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d73b5c();
   return;
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 8346f03..ab6c94b 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d73b5c(texture1d<int, access::write> tint_symbol_1) {
+void textureStore_d73b5c(texture1d<int, access::write> tint_symbol) {
   int arg_1 = 1;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_d73b5c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d73b5c(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d73b5c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d73b5c(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d73b5c(tint_symbol_2);
   return;
 }
 
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 5b3270b..7218464 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d73b5c "textureStore_d73b5c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %12 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %25
+         %17 = OpConstantNull %v4int
+%textureStore_d73b5c = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %17
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %int %arg_1
+         %21 = OpLoad %v4int %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_d73b5c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_d73b5c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_d73b5c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_d73b5c
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = 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 9509d8c..6757979 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d73b5c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d73b5c();
diff --git a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl
index 9321d76..5e8e69c 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d82b0a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d82b0a();
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 5561848..f8598fd 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d82b0a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d82b0a();
   return;
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 5561848..f8598fd 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d82b0a();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d82b0a();
   return;
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 e81fb99..1be6faa 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d82b0a(texture3d<int, access::write> tint_symbol_1) {
+void textureStore_d82b0a(texture3d<int, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_d82b0a(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d82b0a(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d82b0a(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d82b0a(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d82b0a(tint_symbol_2);
   return;
 }
 
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 f4e3cee..575894b 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.spvasm
@@ -1,89 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d82b0a "textureStore_d82b0a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %23 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %21 = OpConstantNull %v4int
+%textureStore_d82b0a = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_d82b0a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_d82b0a
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_d82b0a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_d82b0a
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 8d992f8..da274a3 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d82b0a();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d82b0a();
diff --git a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl
index d41e81e..8f09df4 100644
--- a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d86d33();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d86d33();
diff --git a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.dxc.hlsl
index f7cd141..a376788 100644
--- a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d86d33();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d86d33();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.fxc.hlsl
index f7cd141..a376788 100644
--- a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_d86d33();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_d86d33();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.glsl
index 1b9b761..84ef908 100644
--- a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
-void textureStore_d86d33() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_d86d33();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.msl
index d48a534..4a55017 100644
--- a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_d86d33(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_d86d33(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_d86d33(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_d86d33(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_d86d33(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_d86d33(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_d86d33(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.spvasm
index 54d9134..44b3fa4 100644
--- a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.spvasm
@@ -1,96 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_d86d33 "textureStore_d86d33"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-%textureStore_d86d33 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_d86d33 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_d86d33
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_d86d33
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_d86d33
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_d86d33
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_d86d33
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.wgsl
index 971e8f6..4cafbf6 100644
--- a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d86d33();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_d86d33();
diff --git a/test/tint/builtins/gen/var/textureStore/da530c.wgsl b/test/tint/builtins/gen/var/textureStore/da530c.wgsl
index 298075e..b18a377 100644
--- a/test/tint/builtins/gen/var/textureStore/da530c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/da530c.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_da530c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_da530c();
diff --git a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.dxc.hlsl
index d53aadb..28598ef 100644
--- a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_da530c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_da530c();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.fxc.hlsl
index d53aadb..28598ef 100644
--- a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_da530c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_da530c();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.glsl
index 32038d4..3fb652b 100644
--- a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2D arg_0;
-void textureStore_da530c() {
-  uvec2 arg_1 = uvec2(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_da530c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.msl
index 5eda3aa..21f575a 100644
--- a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_da530c(texture2d<int, access::read_write> tint_symbol_1) {
+void textureStore_da530c(texture2d<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<int, access::read_write> tint_symbol_2) {
-  textureStore_da530c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_da530c(tint_symbol_4);
+fragment void fragment_main(texture2d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_da530c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_da530c(tint_symbol_5);
+kernel void compute_main(texture2d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_da530c(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.spvasm
index fb2406a..a167cc2 100644
--- a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_da530c "textureStore_da530c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_da530c = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4int
+%textureStore_da530c = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_da530c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_da530c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_da530c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_da530c
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_da530c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.wgsl
index 6d59050..a70a957 100644
--- a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_da530c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_da530c();
diff --git a/test/tint/builtins/gen/var/textureStore/db5128.wgsl b/test/tint/builtins/gen/var/textureStore/db5128.wgsl
index c29bb4f..8518cd4 100644
--- a/test/tint/builtins/gen/var/textureStore/db5128.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/db5128.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_db5128();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_db5128();
diff --git a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.dxc.hlsl
index 47d0570..5395be2 100644
--- a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_db5128();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_db5128();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.fxc.hlsl
index 47d0570..5395be2 100644
--- a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_db5128();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_db5128();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.glsl
index b616762..33299a4 100644
--- a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_db5128() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_db5128();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.msl
index 457706a..69c31d3 100644
--- a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_db5128(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_db5128(texture2d_array<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_db5128(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_db5128(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_db5128(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_db5128(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_db5128(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.spvasm
index 667094e..bd08574 100644
--- a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_db5128 "textureStore_db5128"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_db5128 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_db5128 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_db5128
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_db5128
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_db5128
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_db5128
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_db5128
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.wgsl
index 851f882..ad1c914 100644
--- a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_db5128();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_db5128();
diff --git a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl
index 4f9ee9d..3321f42 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_db92a2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_db92a2();
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 ea3013e..32f62d5 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_db92a2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_db92a2();
   return;
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 ea3013e..32f62d5 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_db92a2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_db92a2();
   return;
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 970770a..1723cb9 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_db92a2() {
-  uvec2 arg_1 = uvec2(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_db92a2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 789c06b..7313d8b 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_db92a2(texture2d<uint, access::write> tint_symbol_1) {
+void textureStore_db92a2(texture2d<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_db92a2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_db92a2(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_db92a2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_db92a2(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_db92a2(tint_symbol_2);
   return;
 }
 
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 400c092..7de1960 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_db92a2 "textureStore_db92a2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %19 = OpConstantNull %v4uint
+%textureStore_db92a2 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_db92a2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_db92a2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_db92a2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_db92a2
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 e6af452..3fae40d 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_db92a2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_db92a2();
diff --git a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl
index 5e35ed5..0922f37 100644
--- a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dce0e2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dce0e2();
diff --git a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.dxc.hlsl
index c68b33a..b05295a 100644
--- a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dce0e2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dce0e2();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.fxc.hlsl
index c68b33a..b05295a 100644
--- a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dce0e2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dce0e2();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.glsl
index d1cb037..a2d15cd 100644
--- a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp image2DArray arg_0;
-void textureStore_dce0e2() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_dce0e2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.msl
index e0c0802..be27e79 100644
--- a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_dce0e2(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_dce0e2(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_dce0e2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_dce0e2(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_dce0e2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_dce0e2(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_dce0e2(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.spvasm
index 2ae73a7..0fece42 100644
--- a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.spvasm
@@ -1,96 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_dce0e2 "textureStore_dce0e2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-%textureStore_dce0e2 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_dce0e2 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_dce0e2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_dce0e2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_dce0e2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_dce0e2
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_dce0e2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.wgsl
index a25e1f2..f0ffa62 100644
--- a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dce0e2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dce0e2();
diff --git a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl
index 2072ec1..40395f7 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dd7d81();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dd7d81();
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 2cf4935..0daac6b 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dd7d81();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dd7d81();
   return;
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 2cf4935..0daac6b 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dd7d81();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dd7d81();
   return;
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 21f6eef..9a551e7 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
-void textureStore_dd7d81() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_dd7d81();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 30a6239..9672f09 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_dd7d81(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_dd7d81(texture3d<float, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_dd7d81(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_dd7d81(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_dd7d81(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_dd7d81(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_dd7d81(tint_symbol_2);
   return;
 }
 
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 ff057ab..e9173a2 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_dd7d81 "textureStore_dd7d81"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_dd7d81 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_dd7d81
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_dd7d81
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_dd7d81
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_dd7d81
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 dfe4f3c..bfd0a46 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dd7d81();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dd7d81();
diff --git a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl
index 7a2d3c8..00ae425 100644
--- a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dd8b29();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dd8b29();
diff --git a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.dxc.hlsl
index 24fd80a..a467b63 100644
--- a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dd8b29();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dd8b29();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.fxc.hlsl
index 24fd80a..a467b63 100644
--- a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dd8b29();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dd8b29();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.glsl
index 71297f4..f7f8e6c 100644
--- a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_dd8b29() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_dd8b29();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.msl
index 2e172a9..c202d5d 100644
--- a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_dd8b29(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_dd8b29(texture2d_array<uint, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_dd8b29(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_dd8b29(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_dd8b29(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_dd8b29(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_dd8b29(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.spvasm
index 9f349c6..b7cbb1c 100644
--- a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.spvasm
@@ -1,97 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_dd8b29 "textureStore_dd8b29"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %26 = OpConstantNull %int
+         %18 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_dd8b29 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_dd8b29 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_dd8b29
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_dd8b29
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_dd8b29
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_dd8b29
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_dd8b29
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.wgsl
index d4de0e8..1e9c41e 100644
--- a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dd8b29();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dd8b29();
diff --git a/test/tint/builtins/gen/var/textureStore/dde364.wgsl b/test/tint/builtins/gen/var/textureStore/dde364.wgsl
index 8efa7aa..557ab81 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dde364();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dde364();
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 e3f9a57..8756c9c 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dde364();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dde364();
   return;
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 e3f9a57..8756c9c 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dde364();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dde364();
   return;
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 6073ae5..c5afba2 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_dde364(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_dde364(texture2d_array<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_dde364(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_dde364(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_dde364(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_dde364(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_dde364(tint_symbol_2);
   return;
 }
 
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 84e5b5f..1008374 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_dde364 "textureStore_dde364"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %26 = OpConstantNull %int
+         %18 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_dde364 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_dde364 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %31 = OpLoad %int %arg_2
+         %32 = OpCompositeConstruct %v3int %29 %30 %31
+         %33 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_dde364
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_dde364
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_dde364
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureStore_dde364
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = 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 7ac5a16..73381f4 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dde364();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dde364();
diff --git a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl
index fa748e6..41f691a 100644
--- a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_de38e5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_de38e5();
diff --git a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.dxc.hlsl
index c78c196..e20c3a9 100644
--- a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_de38e5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_de38e5();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.fxc.hlsl
index c78c196..e20c3a9 100644
--- a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_de38e5();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_de38e5();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.glsl
index 681eac3..730d327 100644
--- a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
-void textureStore_de38e5() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_de38e5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.msl
index f467771..9a98913 100644
--- a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_de38e5(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_de38e5(texture3d<float, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_de38e5(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_de38e5(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_de38e5(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_de38e5(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_de38e5(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.spvasm
index aabd3fc..1d1d3f5 100644
--- a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_de38e5 "textureStore_de38e5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_de38e5 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_de38e5 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_de38e5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_de38e5
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_de38e5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_de38e5
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_de38e5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.wgsl
index 948c999..78f0cc8 100644
--- a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_de38e5();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_de38e5();
diff --git a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl
index da88337..f619c7c 100644
--- a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_de4b94();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_de4b94();
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 0ddc239..7d4feb9 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_de4b94();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_de4b94();
   return;
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 0ddc239..7d4feb9 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_de4b94();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_de4b94();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.glsl
index e1597fd..7835a7d 100644
--- a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_de4b94() {
-  uint arg_1 = 1u;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_de4b94();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 f02fdc7..49bb9e5 100644
--- a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_de4b94(texture1d<int, access::write> tint_symbol_1) {
+void textureStore_de4b94(texture1d<int, access::write> tint_symbol) {
   uint arg_1 = 1u;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
-  textureStore_de4b94(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_de4b94(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_de4b94(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_de4b94(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_de4b94(tint_symbol_2);
   return;
 }
 
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 e306fb9..bf96abd 100644
--- a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_de4b94 "textureStore_de4b94"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %21 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %27
+         %19 = OpConstantNull %v4int
+%textureStore_de4b94 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %uint %arg_1
-         %31 = OpLoad %v4int %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_de4b94
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_de4b94
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_de4b94
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_de4b94
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 98cdbb0..6ee0a6d 100644
--- a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_de4b94();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_de4b94();
diff --git a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl
index 6b2ebf9..6d985d6 100644
--- a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_df0c51();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_df0c51();
diff --git a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.dxc.hlsl
index 42b62fc..d32a483 100644
--- a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_df0c51();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_df0c51();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.fxc.hlsl
index 42b62fc..d32a483 100644
--- a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_df0c51();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_df0c51();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.glsl
index 4a7d69a..db8b71d 100644
--- a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage3D arg_0;
-void textureStore_df0c51() {
-  uvec3 arg_1 = uvec3(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_df0c51();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.msl
index a5989de..ae89c2d 100644
--- a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_df0c51(texture3d<int, access::read_write> tint_symbol_1) {
+void textureStore_df0c51(texture3d<int, access::read_write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::read_write> tint_symbol_2) {
-  textureStore_df0c51(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_df0c51(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_df0c51(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_df0c51(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_df0c51(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.spvasm
index 6625d92..c2515f9 100644
--- a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_df0c51 "textureStore_df0c51"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %23 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_df0c51 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+         %21 = OpConstantNull %v4int
+%textureStore_df0c51 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_df0c51
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_df0c51
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_df0c51
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_df0c51
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_df0c51
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.wgsl
index df9646f..f8b9a56 100644
--- a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_df0c51();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_df0c51();
diff --git a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl
index 4788d16..20fbfb8 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_df2ca4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_df2ca4();
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 db34903..8735ef8 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_df2ca4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_df2ca4();
   return;
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 db34903..8735ef8 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_df2ca4();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_df2ca4();
   return;
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 8b4028a..71186c1 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_df2ca4() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_df2ca4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 633b3cf..3b7173f 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_df2ca4(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_df2ca4(texture2d_array<float, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_df2ca4(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_df2ca4(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_df2ca4(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_df2ca4(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_df2ca4(tint_symbol_2);
   return;
 }
 
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 aa53658..d5a9b20 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.spvasm
@@ -1,97 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_df2ca4 "textureStore_df2ca4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-%textureStore_df2ca4 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_df2ca4 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_df2ca4
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_df2ca4
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_df2ca4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_df2ca4
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = 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 4775cc0..bb8448c 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_df2ca4();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_df2ca4();
diff --git a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl
index 04f08af..15d509f 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dfa9a1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dfa9a1();
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 3a5da0d..8265d30 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dfa9a1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dfa9a1();
   return;
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 3a5da0d..8265d30 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
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dfa9a1();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dfa9a1();
   return;
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 3ed3139..09a81c8 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_dfa9a1(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_dfa9a1(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_dfa9a1(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_dfa9a1(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_dfa9a1(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_dfa9a1(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_dfa9a1(tint_symbol_2);
   return;
 }
 
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 16fa8ef..dd00d7b 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.spvasm
@@ -1,98 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_dfa9a1 "textureStore_dfa9a1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-%textureStore_dfa9a1 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_dfa9a1 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_dfa9a1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_dfa9a1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_dfa9a1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_dfa9a1
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = 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 b09f84a..b7c0406 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dfa9a1();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dfa9a1();
diff --git a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl
index b0f07f9..4e00d90 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dffb13();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dffb13();
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 0e36805..4ab35fa 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dffb13();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dffb13();
   return;
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 0e36805..4ab35fa 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_dffb13();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_dffb13();
   return;
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 6d26bd7..7067e8e 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_dffb13(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_dffb13(texture2d_array<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_dffb13(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_dffb13(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_dffb13(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_dffb13(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_dffb13(tint_symbol_2);
   return;
 }
 
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 39fdc16..15cf778 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.spvasm
@@ -1,100 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_dffb13 "textureStore_dffb13"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_dffb13 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_dffb13 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_dffb13
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_dffb13
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_dffb13
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_dffb13
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 be48ae6..d957e85 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dffb13();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_dffb13();
diff --git a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl
index 96b20b2..53309d9 100644
--- a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e077e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e077e7();
diff --git a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.dxc.hlsl
index e517ee5..1c8bf76 100644
--- a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e077e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e077e7();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.fxc.hlsl
index e517ee5..1c8bf76 100644
--- a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e077e7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e077e7();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.msl
index 56c102c..8080d84 100644
--- a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e077e7(texture1d<int, access::read_write> tint_symbol_1) {
+void textureStore_e077e7(texture1d<int, access::read_write> tint_symbol) {
   int arg_1 = 1;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_e077e7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e077e7(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e077e7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e077e7(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e077e7(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.spvasm
index 85243d5..0f75ec6 100644
--- a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.spvasm
@@ -1,85 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e077e7 "textureStore_e077e7"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %12 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %25 = OpConstantNull %v4int
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_e077e7 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %25
+         %17 = OpConstantNull %v4int
+%textureStore_e077e7 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %17
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %int %arg_1
+         %21 = OpLoad %v4int %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_e077e7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_e077e7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_e077e7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_e077e7
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_e077e7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.wgsl
index a6dbbe6..b78f279 100644
--- a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e077e7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e077e7();
diff --git a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl
index e7eff82..0969627 100644
--- a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e0b666();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e0b666();
diff --git a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.dxc.hlsl
index c61ddae..b4e4397 100644
--- a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e0b666();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e0b666();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.fxc.hlsl
index c61ddae..b4e4397 100644
--- a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e0b666();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e0b666();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.glsl
index 05e7727..7227b21 100644
--- a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_e0b666() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_e0b666();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.msl
index 474423b..f797cfb 100644
--- a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e0b666(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_e0b666(texture1d<float, access::write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_e0b666(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e0b666(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e0b666(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e0b666(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e0b666(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.spvasm
index 2ee8650..2f8c8c0 100644
--- a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e0b666 "textureStore_e0b666"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpTypeFunction %v4float
-%textureStore_e0b666 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+         %19 = OpConstantNull %v4float
+%textureStore_e0b666 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-         %29 = OpVectorShuffle %v4float %28 %28 2 1 0 3
-               OpImageWrite %26 %27 %29
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+         %24 = OpVectorShuffle %v4float %23 %23 2 1 0 3
+               OpImageWrite %21 %22 %24
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_e0b666
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_e0b666
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_e0b666
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_e0b666
+%compute_main = OpFunction %void None %5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_e0b666
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.wgsl
index 8e0580f..8190e37 100644
--- a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e0b666();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e0b666();
diff --git a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl
index 4ea0cd1..e30dd52 100644
--- a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e1784d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e1784d();
diff --git a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.dxc.hlsl
index 8824528..d882630 100644
--- a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e1784d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e1784d();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.fxc.hlsl
index 8824528..d882630 100644
--- a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e1784d();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e1784d();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.glsl
index 833f885..ef3601a 100644
--- a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_e1784d() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_e1784d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.msl
index 95b7b77..7cbb5fa 100644
--- a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e1784d(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_e1784d(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_e1784d(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e1784d(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e1784d(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e1784d(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e1784d(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.spvasm
index 4377457..2cc74cf 100644
--- a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.spvasm
@@ -1,96 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e1784d "textureStore_e1784d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-%textureStore_e1784d = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_e1784d = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_e1784d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_e1784d
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_e1784d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_e1784d
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_e1784d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.wgsl
index 4188529..b71464b 100644
--- a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e1784d();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e1784d();
diff --git a/test/tint/builtins/gen/var/textureStore/e38281.wgsl b/test/tint/builtins/gen/var/textureStore/e38281.wgsl
index fb1ecf3..e887864 100644
--- a/test/tint/builtins/gen/var/textureStore/e38281.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e38281.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e38281();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e38281();
diff --git a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.dxc.hlsl
index aa9baa9..c161472 100644
--- a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e38281();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e38281();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.fxc.hlsl
index aa9baa9..c161472 100644
--- a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e38281();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e38281();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.glsl
index 83e3497..ccb64c5 100644
--- a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_e38281() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_e38281();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.msl
index 7f2da16..c336bdd 100644
--- a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e38281(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_e38281(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_e38281(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e38281(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e38281(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e38281(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e38281(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.spvasm
index 2de3603..4d9b438 100644
--- a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.spvasm
@@ -1,95 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e38281 "textureStore_e38281"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
-%textureStore_e38281 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_e38281 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-         %39 = OpVectorShuffle %v4float %38 %38 2 1 0 3
-               OpImageWrite %31 %37 %39
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+         %34 = OpVectorShuffle %v4float %33 %33 2 1 0 3
+               OpImageWrite %26 %32 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_e38281
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_e38281
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_e38281
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_e38281
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_e38281
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.wgsl
index 8f44a22..8c0b406 100644
--- a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e38281();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e38281();
diff --git a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl
index ae23fb9..f27ccf6 100644
--- a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e46fd8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e46fd8();
diff --git a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.dxc.hlsl
index e33f6f1..3a31160 100644
--- a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e46fd8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e46fd8();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.fxc.hlsl
index e33f6f1..3a31160 100644
--- a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e46fd8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e46fd8();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.glsl
index dcc0675..7698be5 100644
--- a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_e46fd8() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2.bgra);
-}
-
-vec4 vertex_main() {
-  textureStore_e46fd8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.msl
index b35bb13..c970b7d 100644
--- a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e46fd8(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_e46fd8(texture2d<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_e46fd8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e46fd8(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e46fd8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e46fd8(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e46fd8(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.spvasm
index 440b67b..01f317b 100644
--- a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e46fd8 "textureStore_e46fd8"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
-%textureStore_e46fd8 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %19
-               OpStore %arg_2 %24
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2uint %arg_1
-         %30 = OpLoad %v4float %arg_2
-         %31 = OpVectorShuffle %v4float %30 %30 2 1 0 3
-               OpImageWrite %28 %29 %31
+         %21 = OpConstantNull %v4float
+%textureStore_e46fd8 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+         %26 = OpVectorShuffle %v4float %25 %25 2 1 0 3
+               OpImageWrite %23 %24 %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_e46fd8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_e46fd8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_e46fd8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_e46fd8
+%compute_main = OpFunction %void None %5
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_e46fd8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.wgsl
index 4711df9..bc3c921 100644
--- a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e46fd8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e46fd8();
diff --git a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl
index 492df10..f5124ee 100644
--- a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e72bdc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e72bdc();
diff --git a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.dxc.hlsl
index 65b7ac9..070316e 100644
--- a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e72bdc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e72bdc();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.fxc.hlsl
index 65b7ac9..070316e 100644
--- a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e72bdc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e72bdc();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.glsl
index c9ccba2..3d1999b 100644
--- a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2DArray arg_0;
-void textureStore_e72bdc() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_e72bdc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.msl
index 7aa0bdf..0019f58 100644
--- a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e72bdc(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_e72bdc(texture2d_array<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_e72bdc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e72bdc(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e72bdc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e72bdc(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e72bdc(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.spvasm
index 023ca77..e22cadc 100644
--- a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.spvasm
@@ -1,96 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e72bdc "textureStore_e72bdc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %20 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
       %v3int = OpTypeVector %int 3
-         %42 = OpTypeFunction %v4float
-%textureStore_e72bdc = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_e72bdc = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_e72bdc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_e72bdc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_e72bdc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_e72bdc
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_e72bdc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.wgsl
index 9b4b1e3..5a03c7e 100644
--- a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e72bdc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e72bdc();
diff --git a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl
index 2e0e779..58b05da 100644
--- a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e7c6d8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e7c6d8();
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 038a6e3..98c4122 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e7c6d8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e7c6d8();
   return;
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 038a6e3..98c4122 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e7c6d8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e7c6d8();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.glsl
index 247b2e3..668587e 100644
--- a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2D arg_0;
-void textureStore_e7c6d8() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_e7c6d8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 5d63f1b..6828c8d 100644
--- a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e7c6d8(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_e7c6d8(texture1d<float, access::write> tint_symbol) {
   uint arg_1 = 1u;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_e7c6d8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e7c6d8(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e7c6d8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e7c6d8(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e7c6d8(tint_symbol_2);
   return;
 }
 
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 9e5c49a..21d7ca4 100644
--- a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e7c6d8 "textureStore_e7c6d8"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %13 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = 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
+         %19 = OpConstantNull %v4float
+%textureStore_e7c6d8 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %uint %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_e7c6d8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_e7c6d8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_e7c6d8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_e7c6d8
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 3998c63..bb27f88 100644
--- a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e7c6d8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e7c6d8();
diff --git a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl
index f349125..3af1ef8 100644
--- a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e87f6e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e87f6e();
diff --git a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.dxc.hlsl
index 9c620e4..bf6ba73 100644
--- a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e87f6e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e87f6e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.fxc.hlsl
index 9c620e4..bf6ba73 100644
--- a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e87f6e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e87f6e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.glsl
index 4e50d17..1ecfaaf 100644
--- a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16i) uniform highp writeonly iimage2D arg_0;
-void textureStore_e87f6e() {
-  int arg_1 = 1;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_e87f6e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.msl
index aafe532..cb57fdf 100644
--- a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e87f6e(texture1d<int, access::read_write> tint_symbol_1) {
+void textureStore_e87f6e(texture1d<int, access::read_write> tint_symbol) {
   int arg_1 = 1;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_e87f6e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e87f6e(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e87f6e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e87f6e(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e87f6e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.spvasm
index dd9e201..a2415cf 100644
--- a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.spvasm
@@ -1,84 +1,55 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e87f6e "textureStore_e87f6e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %12 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %25 = OpConstantNull %v4int
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_e87f6e = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %25
+         %17 = OpConstantNull %v4int
+%textureStore_e87f6e = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %17
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %int %arg_1
+         %21 = OpLoad %v4int %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_e87f6e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_e87f6e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_e87f6e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_e87f6e
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_e87f6e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.wgsl
index b9fc6d1..65eb54d 100644
--- a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e87f6e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e87f6e();
diff --git a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl
index 42a0915..282cae8 100644
--- a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e885e8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e885e8();
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 753f07f..4a90d68 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e885e8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e885e8();
   return;
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 753f07f..4a90d68 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e885e8();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e885e8();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.glsl
index 50ad528..8b46537 100644
--- a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16f) uniform highp writeonly image2D arg_0;
-void textureStore_e885e8() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_e885e8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 cdb58ca..50e2634 100644
--- a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e885e8(texture1d<float, access::write> tint_symbol_1) {
+void textureStore_e885e8(texture1d<float, access::write> tint_symbol) {
   int arg_1 = 1;
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
-  textureStore_e885e8(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e885e8(tint_symbol_4);
+fragment void fragment_main(texture1d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e885e8(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e885e8(tint_symbol_5);
+kernel void compute_main(texture1d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e885e8(tint_symbol_2);
   return;
 }
 
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 948a8a3..cd0788c 100644
--- a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e885e8 "textureStore_e885e8"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %13 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %16 = 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
+         %19 = OpConstantNull %v4float
+%textureStore_e885e8 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4float %arg_2
-               OpImageWrite %26 %27 %28
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4float %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_e885e8
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_e885e8
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_e885e8
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_e885e8
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 3fcda8b..c232554 100644
--- a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e885e8();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e885e8();
diff --git a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl
index 7697a34..8f84a3a 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e8cbf7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e8cbf7();
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 07d2498..f4360af 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e8cbf7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e8cbf7();
   return;
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 07d2498..f4360af 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_e8cbf7();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_e8cbf7();
   return;
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 7b87f03..ef1f9a7 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_e8cbf7() {
-  uvec2 arg_1 = uvec2(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_e8cbf7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 4412956..74b45b5 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_e8cbf7(texture2d<uint, access::write> tint_symbol_1) {
+void textureStore_e8cbf7(texture2d<uint, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint2(arg_1));
+  tint_symbol.write(arg_2, uint2(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
-  textureStore_e8cbf7(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_e8cbf7(tint_symbol_4);
+fragment void fragment_main(texture2d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_e8cbf7(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_e8cbf7(tint_symbol_5);
+kernel void compute_main(texture2d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_e8cbf7(tint_symbol_2);
   return;
 }
 
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 4ba7a7b..3068c83 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_e8cbf7 "textureStore_e8cbf7"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %19 = OpConstantNull %v4uint
+%textureStore_e8cbf7 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v2uint %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_e8cbf7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_e8cbf7
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_e8cbf7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_e8cbf7
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 0402200..ba1d443 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e8cbf7();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_e8cbf7();
diff --git a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl
index b1fb548..82ae530 100644
--- a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ea30d2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ea30d2();
diff --git a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.dxc.hlsl
index 19bef20..e5328ee 100644
--- a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ea30d2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ea30d2();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.fxc.hlsl
index 19bef20..e5328ee 100644
--- a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ea30d2();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ea30d2();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.msl
index f90c639..19a83b9 100644
--- a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ea30d2(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_ea30d2(texture2d_array<int, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_ea30d2(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ea30d2(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ea30d2(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ea30d2(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ea30d2(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.spvasm
index dbb62c1..4a98ce5 100644
--- a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ea30d2 "textureStore_ea30d2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %23 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_ea30d2 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_ea30d2 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_ea30d2
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_ea30d2
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_ea30d2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_ea30d2
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_ea30d2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.wgsl
index 3817637..a2e4376 100644
--- a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ea30d2();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ea30d2();
diff --git a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl
index c06e0ff..3fa170d 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_eb702f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_eb702f();
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 5cc4ab3..18215bf 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_eb702f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_eb702f();
   return;
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 5cc4ab3..18215bf 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_eb702f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_eb702f();
   return;
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 670c9c0..cc3972e 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32f) uniform highp writeonly image3D arg_0;
-void textureStore_eb702f() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_eb702f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 550c53e..76ff805 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_eb702f(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_eb702f(texture3d<float, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_eb702f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_eb702f(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_eb702f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_eb702f(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_eb702f(tint_symbol_2);
   return;
 }
 
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 f64b950..06359ac 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_eb702f "textureStore_eb702f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_eb702f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_eb702f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_eb702f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_eb702f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_eb702f
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 9b56f0d..7b713da 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_eb702f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_eb702f();
diff --git a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl
index 16a9ac8..1f79512 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_eb78b9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_eb78b9();
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 799a9b3..6e6f166 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_eb78b9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_eb78b9();
   return;
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 799a9b3..6e6f166 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_eb78b9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_eb78b9();
   return;
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 a5e840d..50509c1 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_eb78b9() {
-  ivec3 arg_1 = ivec3(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_eb78b9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 135de26..e5e7568 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_eb78b9(texture3d<int, access::write> tint_symbol_1) {
+void textureStore_eb78b9(texture3d<int, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_eb78b9(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_eb78b9(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_eb78b9(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_eb78b9(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_eb78b9(tint_symbol_2);
   return;
 }
 
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 b48dd46..8f64b60 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_eb78b9 "textureStore_eb78b9"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %11 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %14 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %19 = OpConstantNull %v4int
+%textureStore_eb78b9 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %14
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %19
+               OpStore %arg_1 %11
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %v3int %arg_1
+         %23 = OpLoad %v4int %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_eb78b9
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_eb78b9
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_eb78b9
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_eb78b9
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 cbee439..53de43b 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_eb78b9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_eb78b9();
diff --git a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl
index c7b821c..e45f934 100644
--- a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl
@@ -44,12 +44,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ed6198();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ed6198();
diff --git a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.dxc.hlsl
index 372776f..87dd44f 100644
--- a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ed6198();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ed6198();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.fxc.hlsl
index 372776f..87dd44f 100644
--- a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ed6198();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ed6198();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.msl
index 108e46c..3b71044 100644
--- a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ed6198(texture3d<float, access::read_write> tint_symbol_1) {
+void textureStore_ed6198(texture3d<float, access::read_write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint3(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::read_write> tint_symbol_2) {
-  textureStore_ed6198(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ed6198(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ed6198(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ed6198(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ed6198(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.spvasm
index e9527c9..eb84116 100644
--- a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.spvasm
@@ -1,84 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ed6198 "textureStore_ed6198"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_ed6198 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_ed6198 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_ed6198
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_ed6198
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_ed6198
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_ed6198
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_ed6198
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.wgsl
index f38729b..d76b219 100644
--- a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.wgsl
@@ -8,12 +8,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ed6198();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ed6198();
diff --git a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl
index 2bec6eb..338e9d2 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ee6acc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ee6acc();
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 a2e967f..2562a33 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ee6acc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ee6acc();
   return;
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 a2e967f..2562a33 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ee6acc();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ee6acc();
   return;
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 ad212b6..e5d80e7 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ee6acc(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_ee6acc(texture3d<float, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_ee6acc(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ee6acc(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ee6acc(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ee6acc(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ee6acc(tint_symbol_2);
   return;
 }
 
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 a004106..964e60f 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.spvasm
@@ -1,85 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ee6acc "textureStore_ee6acc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_ee6acc = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_ee6acc
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_ee6acc
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_ee6acc
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_ee6acc
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 c55bbcd..2e6aab8 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ee6acc();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ee6acc();
diff --git a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl
index f25490e..74a2188 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ef9f2f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ef9f2f();
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 48c8fb4..06ae6fc 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ef9f2f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ef9f2f();
   return;
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 48c8fb4..06ae6fc 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ef9f2f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ef9f2f();
   return;
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 c907b30..4ce2c94c 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_ef9f2f() {
-  ivec3 arg_1 = ivec3(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_ef9f2f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 f7972bd..0cdd8e4 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ef9f2f(texture3d<uint, access::write> tint_symbol_1) {
+void textureStore_ef9f2f(texture3d<uint, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_ef9f2f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ef9f2f(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ef9f2f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ef9f2f(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ef9f2f(tint_symbol_2);
   return;
 }
 
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 f841295..a4e4e2f 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ef9f2f "textureStore_ef9f2f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %23 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %21 = OpConstantNull %v4uint
+%textureStore_ef9f2f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_ef9f2f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_ef9f2f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_ef9f2f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_ef9f2f
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 dd6845f..db000df 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ef9f2f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ef9f2f();
diff --git a/test/tint/builtins/gen/var/textureStore/f05928.wgsl b/test/tint/builtins/gen/var/textureStore/f05928.wgsl
index 76bc587..41d52bd 100644
--- a/test/tint/builtins/gen/var/textureStore/f05928.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f05928.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f05928();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f05928();
diff --git a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.dxc.hlsl
index 3f6070a..4402c0e 100644
--- a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f05928();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f05928();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.fxc.hlsl
index 3f6070a..4402c0e 100644
--- a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f05928();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f05928();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.glsl
index 1265e0d..2216559 100644
--- a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_f05928() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_f05928();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.msl
index cbfb0c0..64cf5ed 100644
--- a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f05928(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_f05928(texture2d_array<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_f05928(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f05928(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f05928(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f05928(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f05928(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.spvasm
index 133f07d..88a1775 100644
--- a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f05928 "textureStore_f05928"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
+         %24 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_f05928 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_f05928 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4int %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_f05928
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_f05928
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_f05928
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_f05928
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_f05928
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.wgsl
index 7c2eddd..60e4823 100644
--- a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f05928();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f05928();
diff --git a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl
index 62d7b12..351ac7a 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f1e6d3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f1e6d3();
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 7b5901b..dd97b06 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f1e6d3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f1e6d3();
   return;
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 7b5901b..dd97b06 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f1e6d3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f1e6d3();
   return;
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 1c5a6cd..e26eedd 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_f1e6d3() {
-  uvec3 arg_1 = uvec3(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_f1e6d3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 38b3da4..50b70fa 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f1e6d3(texture3d<int, access::write> tint_symbol_1) {
+void textureStore_f1e6d3(texture3d<int, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
-  textureStore_f1e6d3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f1e6d3(tint_symbol_4);
+fragment void fragment_main(texture3d<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f1e6d3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f1e6d3(tint_symbol_5);
+kernel void compute_main(texture3d<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f1e6d3(tint_symbol_2);
   return;
 }
 
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 8e17d81..a7d04e2 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f1e6d3 "textureStore_f1e6d3"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %23 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
-         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %18 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %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 %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
+         %21 = OpConstantNull %v4int
+%textureStore_f1e6d3 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4int %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_f1e6d3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_f1e6d3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_f1e6d3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_f1e6d3
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 2f64952..81bde1c 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f1e6d3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f1e6d3();
diff --git a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl
index bee5a77..0cf1257 100644
--- a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f64d69();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f64d69();
diff --git a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.dxc.hlsl
index b5dde0d..4960c67 100644
--- a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f64d69();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f64d69();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.fxc.hlsl
index b5dde0d..4960c67 100644
--- a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f64d69();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f64d69();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.glsl
index 17a2786..903765f 100644
--- a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(r32i) uniform highp iimage2D arg_0;
-void textureStore_f64d69() {
-  int arg_1 = 1;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_f64d69();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.msl
index c2ff7d1..32f54ce 100644
--- a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f64d69(texture1d<int, access::read_write> tint_symbol_1) {
+void textureStore_f64d69(texture1d<int, access::read_write> tint_symbol) {
   int arg_1 = 1;
   int4 arg_2 = int4(1);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<int, access::read_write> tint_symbol_2) {
-  textureStore_f64d69(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f64d69(tint_symbol_4);
+fragment void fragment_main(texture1d<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f64d69(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f64d69(tint_symbol_5);
+kernel void compute_main(texture1d<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f64d69(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.spvasm
index 67cfecf..30d8d11 100644
--- a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.spvasm
@@ -1,84 +1,55 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f64d69 "textureStore_f64d69"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %12 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %14 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %25 = OpConstantNull %v4int
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_f64d69 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %25
+         %17 = OpConstantNull %v4int
+%textureStore_f64d69 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %12
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %17
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %22
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %14
+         %19 = OpLoad %3 %arg_0
+         %20 = OpLoad %int %arg_1
+         %21 = OpLoad %v4int %arg_2
+               OpImageWrite %19 %20 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_f64d69
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_f64d69
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_f64d69
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_f64d69
+%compute_main = OpFunction %void None %5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_f64d69
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.wgsl
index 480cef8..35dc3f7 100644
--- a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f64d69();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f64d69();
diff --git a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl
index f1626a3..0e78aa0 100644
--- a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f6f392();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f6f392();
diff --git a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.dxc.hlsl
index 55dd9d2..9cbbcf7 100644
--- a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f6f392();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f6f392();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.fxc.hlsl
index 55dd9d2..9cbbcf7 100644
--- a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f6f392();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f6f392();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.glsl
index df5a3cf..2033ca1 100644
--- a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8) uniform highp writeonly image2DArray arg_0;
-void textureStore_f6f392() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_f6f392();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.msl
index 3a711ed..262a95b 100644
--- a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f6f392(texture2d_array<float, access::read_write> tint_symbol_1) {
+void textureStore_f6f392(texture2d_array<float, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::read_write> tint_symbol_2) {
-  textureStore_f6f392(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f6f392(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f6f392(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f6f392(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f6f392(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.spvasm
index aa52e09..022f68c 100644
--- a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.spvasm
@@ -1,96 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f6f392 "textureStore_f6f392"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %20 = OpConstantNull %int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %26 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %42 = OpTypeFunction %v4float
-%textureStore_f6f392 = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_f6f392 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_int Function %20
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %26
+               OpStore %arg_1 %12
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %23
+         %28 = OpLoad %3 %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 %v4float %arg_3
+               OpImageWrite %28 %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_f6f392
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_f6f392
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_f6f392
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureStore_f6f392
+%compute_main = OpFunction %void None %5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_f6f392
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.wgsl
index 19ab380..59984f0 100644
--- a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f6f392();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f6f392();
diff --git a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl
index 311b077..bfdd7b7 100644
--- a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl
@@ -45,12 +45,6 @@
   var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f7b0ab();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f7b0ab();
diff --git a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.dxc.hlsl
index 8490de7..a3b0dfd 100644
--- a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f7b0ab();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f7b0ab();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.fxc.hlsl
index 8490de7..a3b0dfd 100644
--- a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f7b0ab();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f7b0ab();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.msl
index e8aa3b0..c379a42 100644
--- a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f7b0ab(texture2d_array<float, access::write> tint_symbol_1) {
+void textureStore_f7b0ab(texture2d_array<float, access::write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 arg_3 = float4(1.0f);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
-  textureStore_f7b0ab(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f7b0ab(tint_symbol_4);
+fragment void fragment_main(texture2d_array<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f7b0ab(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f7b0ab(tint_symbol_5);
+kernel void compute_main(texture2d_array<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f7b0ab(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.spvasm
index 47ceb4d..c43d88b 100644
--- a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.spvasm
@@ -1,95 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f7b0ab "textureStore_f7b0ab"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %12 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %15 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %18 = OpConstantNull %uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %24 = OpConstantNull %v4float
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
-%textureStore_f7b0ab = OpFunction %void None %12
-         %15 = OpLabel
-      %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 %19
+%textureStore_f7b0ab = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %18
+      %arg_3 = OpVariable %_ptr_Function_v4float Function %24
+               OpStore %arg_1 %12
                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 %v4float %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %31 = OpLoad %uint %arg_2
+         %32 = OpCompositeConstruct %v3uint %29 %30 %31
+         %33 = OpLoad %v4float %arg_3
+               OpImageWrite %26 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_f7b0ab
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_f7b0ab
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_f7b0ab
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_f7b0ab
+%compute_main = OpFunction %void None %5
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_f7b0ab
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.wgsl
index e0d9c70..323da63 100644
--- a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.wgsl
@@ -9,12 +9,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f7b0ab();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f7b0ab();
diff --git a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl
index c5c867b..8023faa 100644
--- a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f8aaf9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f8aaf9();
diff --git a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.dxc.hlsl
index 728908c..ecb90ac 100644
--- a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f8aaf9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f8aaf9();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.fxc.hlsl
index 728908c..ecb90ac 100644
--- a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f8aaf9();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f8aaf9();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.glsl
index ceb676b..fbe15a1 100644
--- a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_f8aaf9() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_f8aaf9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.msl
index bbc2629..daa78e6 100644
--- a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f8aaf9(texture2d_array<int, access::read_write> tint_symbol_1) {
+void textureStore_f8aaf9(texture2d_array<int, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::read_write> tint_symbol_2) {
-  textureStore_f8aaf9(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f8aaf9(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f8aaf9(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f8aaf9(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f8aaf9(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.spvasm
index 4fda3bb..4d679e9 100644
--- a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.spvasm
@@ -1,95 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f8aaf9 "textureStore_f8aaf9"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %17 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_f8aaf9 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_f8aaf9 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2int %arg_1
+         %27 = OpCompositeExtract %int %26 0
+         %28 = OpCompositeExtract %int %26 1
+         %29 = OpLoad %int %arg_2
+         %30 = OpCompositeConstruct %v3int %27 %28 %29
+         %31 = OpLoad %v4int %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_f8aaf9
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_f8aaf9
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_f8aaf9
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_f8aaf9
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_f8aaf9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.wgsl
index 5124452..ae67759 100644
--- a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f8aaf9();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f8aaf9();
diff --git a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl
index b1fa280..94ab061 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f8dead();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f8dead();
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 8c11204..dd45e7d 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f8dead();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f8dead();
   return;
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 8c11204..dd45e7d 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f8dead();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f8dead();
   return;
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 79f8b0f..5ea9c53 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_f8dead() {
-  ivec3 arg_1 = ivec3(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_f8dead();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 735272b..4ca212a 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f8dead(texture3d<uint, access::write> tint_symbol_1) {
+void textureStore_f8dead(texture3d<uint, access::write> tint_symbol) {
   int3 arg_1 = int3(1);
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
-  textureStore_f8dead(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f8dead(tint_symbol_4);
+fragment void fragment_main(texture3d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f8dead(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f8dead(tint_symbol_5);
+kernel void compute_main(texture3d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f8dead(tint_symbol_2);
   return;
 }
 
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 a125397..7a79491 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.spvasm
@@ -1,88 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f8dead "textureStore_f8dead"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+         %12 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %23 = OpConstantNull %v3int
+         %15 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %18 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %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
+         %21 = OpConstantNull %v4uint
+%textureStore_f8dead = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3int %arg_1
+         %25 = OpLoad %v4uint %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_f8dead
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_f8dead
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureStore_f8dead
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureStore_f8dead
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 b510b95..2bd4c56 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f8dead();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f8dead();
diff --git a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl
index 7bb44a4..be4eab7 100644
--- a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f975a0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f975a0();
diff --git a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.dxc.hlsl
index e8c6fe5..330d69e 100644
--- a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f975a0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f975a0();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.fxc.hlsl
index e8c6fe5..330d69e 100644
--- a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f975a0();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f975a0();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.glsl
index 6bc9675..bfe9cca 100644
--- a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
-void textureStore_f975a0() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_f975a0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.msl
index 4081189..94f605b 100644
--- a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f975a0(texture2d<float, access::read_write> tint_symbol_1) {
+void textureStore_f975a0(texture2d<float, access::read_write> tint_symbol) {
   int2 arg_1 = int2(1);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint2(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint2(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d<float, access::read_write> tint_symbol_2) {
-  textureStore_f975a0(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d<float, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f975a0(tint_symbol_4);
+fragment void fragment_main(texture2d<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f975a0(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d<float, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f975a0(tint_symbol_5);
+kernel void compute_main(texture2d<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f975a0(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.spvasm
index 097afeb..ec44f6e 100644
--- a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.spvasm
@@ -1,83 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f975a0 "textureStore_f975a0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-%textureStore_f975a0 = OpFunction %void None %12
-         %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_f975a0 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v2int %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_f975a0
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_f975a0
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_f975a0
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_f975a0
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_f975a0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.wgsl
index f4a5367..afa08c7 100644
--- a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f975a0();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f975a0();
diff --git a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl
index 0e68d23..d1a402c 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f9be83();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f9be83();
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 d9626ad..16465e3 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f9be83();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f9be83();
   return;
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 d9626ad..16465e3 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_f9be83();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_f9be83();
   return;
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 07cbf5c..3da13c4 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_f9be83(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_f9be83(texture2d_array<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_f9be83(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_f9be83(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_f9be83(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_f9be83(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_f9be83(tint_symbol_2);
   return;
 }
 
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 4f8bbfb..9861d95 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.spvasm
@@ -1,97 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_f9be83 "textureStore_f9be83"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %17 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_f9be83 = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_f9be83 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2int %arg_1
+         %27 = OpCompositeExtract %int %26 0
+         %28 = OpCompositeExtract %int %26 1
+         %29 = OpLoad %int %arg_2
+         %30 = OpCompositeConstruct %v3int %27 %28 %29
+         %31 = OpLoad %v4int %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_f9be83
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_f9be83
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_f9be83
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_f9be83
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = 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 d7ad8ba..189fbe5 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f9be83();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_f9be83();
diff --git a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl
index 25d5bdd..97b4460 100644
--- a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fb9a8f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fb9a8f();
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 27c80eb..756a9b1 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fb9a8f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fb9a8f();
   return;
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 27c80eb..756a9b1 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fb9a8f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fb9a8f();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.glsl
index 624bacb..d7d2323 100644
--- a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_fb9a8f() {
-  int arg_1 = 1;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_fb9a8f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 9e3b7d1..b22aa14 100644
--- a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_fb9a8f(texture1d<uint, access::write> tint_symbol_1) {
+void textureStore_fb9a8f(texture1d<uint, access::write> tint_symbol) {
   int arg_1 = 1;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1));
+  tint_symbol.write(arg_2, uint(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
-  textureStore_fb9a8f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_fb9a8f(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_fb9a8f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_fb9a8f(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_fb9a8f(tint_symbol_2);
   return;
 }
 
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 9b76cd8..2b56f4a 100644
--- a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.spvasm
@@ -1,87 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_fb9a8f "textureStore_fb9a8f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %21 = OpConstantNull %int
+         %13 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %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 %27
+         %19 = OpConstantNull %v4uint
+%textureStore_fb9a8f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %int %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_fb9a8f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_fb9a8f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_fb9a8f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_fb9a8f
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = 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 35389e1..e84a4d6 100644
--- a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fb9a8f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fb9a8f();
diff --git a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl
index 87443f5..c2025e0 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fbf53f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fbf53f();
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 dcd9598..8d8c14d 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fbf53f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fbf53f();
   return;
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 dcd9598..8d8c14d 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fbf53f();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fbf53f();
   return;
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 f3f715c..0aedef3 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_fbf53f() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_fbf53f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 9a5b5d0..47fbdfe 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_fbf53f(texture2d_array<int, access::write> tint_symbol_1) {
+void textureStore_fbf53f(texture2d_array<int, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   int arg_2 = 1;
   int4 arg_3 = int4(1);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
-  textureStore_fbf53f(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<int, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_fbf53f(tint_symbol_4);
+fragment void fragment_main(texture2d_array<int, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_fbf53f(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<int, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_fbf53f(tint_symbol_5);
+kernel void compute_main(texture2d_array<int, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_fbf53f(tint_symbol_2);
   return;
 }
 
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 a1a0556..dc68832 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.spvasm
@@ -1,96 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_fbf53f "textureStore_fbf53f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
-         %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v2int %int_1 %int_1
+         %11 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpConstantNull %v2int
+         %14 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %17 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_fbf53f = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_fbf53f = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %17
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %22
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %19
+         %24 = OpLoad %3 %arg_0
+         %26 = OpLoad %v2int %arg_1
+         %27 = OpCompositeExtract %int %26 0
+         %28 = OpCompositeExtract %int %26 1
+         %29 = OpLoad %int %arg_2
+         %30 = OpCompositeConstruct %v3int %27 %28 %29
+         %31 = OpLoad %v4int %arg_3
+               OpImageWrite %24 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_fbf53f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_fbf53f
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_fbf53f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_fbf53f
+%compute_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = 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 3b54b98..b2d9c28 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fbf53f();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fbf53f();
diff --git a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl
index bbb83c3..01032e5 100644
--- a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fc916e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fc916e();
diff --git a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.dxc.hlsl
index 859e77f..a59d50e 100644
--- a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.dxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fc916e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fc916e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.fxc.hlsl
index 859e77f..a59d50e 100644
--- a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.fxc.hlsl
@@ -7,22 +7,6 @@
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fc916e();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fc916e();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.glsl
index e0ab3e2..d0910ce 100644
--- a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_fc916e() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_fc916e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.msl
index 28c2721..649cd42 100644
--- a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_fc916e(texture2d_array<uint, access::read_write> tint_symbol_1) {
+void textureStore_fc916e(texture2d_array<uint, access::read_write> tint_symbol) {
   uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2); tint_symbol_1.fence();
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::read_write> tint_symbol_2) {
-  textureStore_fc916e(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_fc916e(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_fc916e(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_fc916e(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_fc916e(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.spvasm
index 9c897fe..9c5dba1 100644
--- a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.spvasm
@@ -1,98 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_fc916e "textureStore_fc916e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+         %11 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpConstantNull %v2uint
+         %14 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %19 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_fc916e = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_fc916e = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %14
+      %arg_2 = OpVariable %_ptr_Function_int Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %11
                OpStore %arg_2 %int_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpCompositeExtract %uint %28 0
+         %30 = OpCompositeExtract %uint %28 1
+         %32 = OpLoad %int %arg_2
+         %31 = OpBitcast %uint %32
+         %33 = OpCompositeConstruct %v3uint %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_fc916e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_fc916e
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_fc916e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_fc916e
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_fc916e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.wgsl
index fd5af16d..f028af81 100644
--- a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fc916e();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fc916e();
diff --git a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl
index 5b878f8..75e871a 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fcbe66();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fcbe66();
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 d24a073..a52b077 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fcbe66();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fcbe66();
   return;
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 d24a073..a52b077 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
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fcbe66();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fcbe66();
   return;
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 036ba38..05331e4 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_fcbe66(texture3d<float, access::write> tint_symbol_1) {
+void textureStore_fcbe66(texture3d<float, access::write> tint_symbol) {
   uint3 arg_1 = uint3(1u);
   float4 arg_2 = float4(1.0f);
-  tint_symbol_1.write(arg_2, uint3(arg_1));
+  tint_symbol.write(arg_2, uint3(arg_1));
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
-  textureStore_fcbe66(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture3d<float, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture3d<float, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_fcbe66(tint_symbol_4);
+fragment void fragment_main(texture3d<float, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_fcbe66(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture3d<float, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_fcbe66(tint_symbol_5);
+kernel void compute_main(texture3d<float, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_fcbe66(tint_symbol_2);
   return;
 }
 
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 250f4de..afc9193 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.spvasm
@@ -1,85 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_fcbe66 "textureStore_fcbe66"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %11 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %12 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+         %12 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpConstantNull %v3uint
+         %15 = OpConstantNull %v3uint
+    %v4float = OpTypeVector %float 4
     %float_1 = OpConstant %float 1
-         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %18 = 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 %22
-      %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               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
+         %21 = OpConstantNull %v4float
+%textureStore_fcbe66 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %15
+      %arg_2 = OpVariable %_ptr_Function_v4float Function %21
+               OpStore %arg_1 %12
+               OpStore %arg_2 %18
+         %23 = OpLoad %3 %arg_0
+         %24 = OpLoad %v3uint %arg_1
+         %25 = OpLoad %v4float %arg_2
+               OpImageWrite %23 %24 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_fcbe66
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_fcbe66
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_fcbe66
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_fcbe66
+%compute_main = OpFunction %void None %5
+         %30 = OpLabel
+         %31 = 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 580017e..4e59f9c 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fcbe66();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fcbe66();
diff --git a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl
index 5290950..5ee993e 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl
@@ -43,12 +43,6 @@
   var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fd350c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fd350c();
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 0b9bd41..c69fb4e 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fd350c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fd350c();
   return;
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 0b9bd41..c69fb4e 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
@@ -7,22 +7,6 @@
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_fd350c();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_fd350c();
   return;
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 27e443f..7045012 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.glsl
@@ -1,27 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_fd350c() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_fd350c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
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 242dda3..91672aa 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.msl
@@ -1,36 +1,20 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_fd350c(texture2d_array<uint, access::write> tint_symbol_1) {
+void textureStore_fd350c(texture2d_array<uint, access::write> tint_symbol) {
   int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint4 arg_3 = uint4(1u);
-  tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
+  tint_symbol.write(arg_3, uint2(arg_1), arg_2);
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
-  textureStore_fd350c(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture2d_array<uint, access::write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_fd350c(tint_symbol_4);
+fragment void fragment_main(texture2d_array<uint, access::write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_fd350c(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_fd350c(tint_symbol_5);
+kernel void compute_main(texture2d_array<uint, access::write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_fd350c(tint_symbol_2);
   return;
 }
 
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 054cd16..1efaf47 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.spvasm
@@ -1,99 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_fd350c "textureStore_fd350c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %20 = OpConstantComposite %v2int %int_1 %int_1
+         %12 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %23 = OpConstantNull %v2int
+         %15 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %19 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
+         %24 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_fd350c = OpFunction %void None %13
-         %16 = OpLabel
-      %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
+%textureStore_fd350c = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %15
+      %arg_2 = OpVariable %_ptr_Function_uint Function %19
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %24
+               OpStore %arg_1 %12
                OpStore %arg_2 %uint_1
-               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
+               OpStore %arg_3 %21
+         %26 = OpLoad %3 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpCompositeExtract %int %28 0
+         %30 = OpCompositeExtract %int %28 1
+         %32 = OpLoad %uint %arg_2
+         %31 = OpBitcast %int %32
+         %33 = OpCompositeConstruct %v3int %29 %30 %31
+         %34 = OpLoad %v4uint %arg_3
+               OpImageWrite %26 %33 %34
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_fd350c
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_fd350c
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_fd350c
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureStore_fd350c
+%compute_main = OpFunction %void None %5
+         %39 = OpLabel
+         %40 = 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 1a03bcc..2ac1276 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.wgsl
@@ -7,12 +7,6 @@
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fd350c();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_fd350c();
diff --git a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl
index f986c68..aba4783 100644
--- a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl
@@ -42,12 +42,6 @@
   var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ff23b3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ff23b3();
diff --git a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.dxc.hlsl
index 61bfb6c..920310b 100644
--- a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.dxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ff23b3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ff23b3();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.fxc.hlsl
index 61bfb6c..920310b 100644
--- a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.fxc.hlsl
@@ -6,22 +6,6 @@
   arg_0[arg_1] = arg_2;
 }
 
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  textureStore_ff23b3();
-  return (0.0f).xxxx;
-}
-
-tint_symbol vertex_main() {
-  float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
 void fragment_main() {
   textureStore_ff23b3();
   return;
diff --git a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.glsl
index c1b6df7..2e3cb96 100644
--- a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.glsl
@@ -1,26 +1,4 @@
 #version 310 es
-
-layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_ff23b3() {
-  int arg_1 = 1;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_ff23b3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
 precision highp float;
 precision highp int;
 
diff --git a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.msl
index e2927c2..03ae278 100644
--- a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.msl
@@ -1,35 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureStore_ff23b3(texture1d<uint, access::read_write> tint_symbol_1) {
+void textureStore_ff23b3(texture1d<uint, access::read_write> tint_symbol) {
   int arg_1 = 1;
   uint4 arg_2 = uint4(1u);
-  tint_symbol_1.write(arg_2, uint(arg_1)); tint_symbol_1.fence();
+  tint_symbol.write(arg_2, uint(arg_1)); tint_symbol.fence();
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-float4 vertex_main_inner(texture1d<uint, access::read_write> tint_symbol_2) {
-  textureStore_ff23b3(tint_symbol_2);
-  return float4(0.0f);
-}
-
-vertex tint_symbol vertex_main(texture1d<uint, access::read_write> tint_symbol_3 [[texture(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
-  textureStore_ff23b3(tint_symbol_4);
+fragment void fragment_main(texture1d<uint, access::read_write> tint_symbol_1 [[texture(0)]]) {
+  textureStore_ff23b3(tint_symbol_1);
   return;
 }
 
-kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_5 [[texture(0)]]) {
-  textureStore_ff23b3(tint_symbol_5);
+kernel void compute_main(texture1d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
+  textureStore_ff23b3(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.spvasm
index 633030b..357f090 100644
--- a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.spvasm
@@ -1,86 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %textureStore_ff23b3 "textureStore_ff23b3"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
-         %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+          %3 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
+      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
+          %5 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %21 = OpConstantNull %int
+         %13 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %uint_1 = OpConstant %uint 1
-         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%textureStore_ff23b3 = OpFunction %void None %13
-         %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_int Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+         %19 = OpConstantNull %v4uint
+%textureStore_ff23b3 = OpFunction %void None %5
+          %8 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_int Function %13
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %19
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %24
-         %29 = OpLoad %11 %arg_0
-         %30 = OpLoad %int %arg_1
-         %31 = OpLoad %v4uint %arg_2
-               OpImageWrite %29 %30 %31
+               OpStore %arg_2 %16
+         %21 = OpLoad %3 %arg_0
+         %22 = OpLoad %int %arg_1
+         %23 = OpLoad %v4uint %arg_2
+               OpImageWrite %21 %22 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_ff23b3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%fragment_main = OpFunction %void None %5
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_ff23b3
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_ff23b3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureStore_ff23b3
+%compute_main = OpFunction %void None %5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_ff23b3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.wgsl
index abe90f4..c31e90e 100644
--- a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.wgsl
@@ -6,12 +6,6 @@
   textureStore(arg_0, arg_1, arg_2);
 }
 
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ff23b3();
-  return vec4<f32>();
-}
-
 @fragment
 fn fragment_main() {
   textureStore_ff23b3();