spirv: Use generic transform to process shader IO

The refactored CanonicalizeEntryPointIO transform makes it much easier
to handle SPIR-V style IO as well, and doing this removes a lot of
duplicated code. Remove all of the SPIR-V transform code for shader IO
and vertex point size.

Bug: tint:920
Change-Id: Id1b97517619b4d2fd09b45d5aee848259f3dfa77
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/60840
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.spvasm
index ee23e7f..d7dca2f 100644
--- a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_05ce15 "textureStore_05ce15"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
          %20 = OpConstantNull %v2int
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_05ce15 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %20 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %20 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %v4float
-         %24 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_05ce15
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %textureStore_05ce15
-         %29 = OpFunctionCall %void %tint_symbol_2 %11
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_05ce15
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_05ce15
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_05ce15
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_05ce15
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.spvasm
index b4bba70..4e3a756 100644
--- a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.spvasm
@@ -1,74 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_064c7f "textureStore_064c7f"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
          %20 = OpConstantNull %v2int
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_064c7f = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %20 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %20 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %v4float
-         %24 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_064c7f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %textureStore_064c7f
-         %29 = OpFunctionCall %void %tint_symbol_2 %11
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_064c7f
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_064c7f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_064c7f
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_064c7f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/068641.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/068641.wgsl.expected.spvasm
index ad9d55c..7f48b8b 100644
--- a/test/intrinsics/gen/textureStore/068641.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/068641.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_068641 "textureStore_068641"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,34 +42,33 @@
          %21 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
          %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_068641 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %v4float
-         %27 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_068641
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureStore_068641
-         %32 = OpFunctionCall %void %tint_symbol_2 %12
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_068641
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_068641
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_068641
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_068641
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.spvasm
index d83c8d9..33b4e6a 100644
--- a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_0af6b5 "textureStore_0af6b5"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
          %20 = OpConstantNull %v2int
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_0af6b5 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %20 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %20 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %v4float
-         %24 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_0af6b5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %textureStore_0af6b5
-         %29 = OpFunctionCall %void %tint_symbol_2 %11
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_0af6b5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_0af6b5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_0af6b5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_0af6b5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.spvasm
index 0bc05e8..c8544d0 100644
--- a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_0c3dff "textureStore_0c3dff"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,34 +42,33 @@
          %21 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
          %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_0c3dff = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %v4float
-         %27 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_0c3dff
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureStore_0c3dff
-         %32 = OpFunctionCall %void %tint_symbol_2 %12
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_0c3dff
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_0c3dff
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_0c3dff
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_0c3dff
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/102722.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/102722.wgsl.expected.spvasm
index 1fc763e..f1a4f4f 100644
--- a/test/intrinsics/gen/textureStore/102722.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/102722.wgsl.expected.spvasm
@@ -1,76 +1,74 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_102722 "textureStore_102722"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
          %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_102722 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %int_1 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_102722
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_102722
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_102722
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_102722
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_102722
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_102722
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.spvasm
index f177c1b..f1316a5 100644
--- a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_1bbd08 "textureStore_1bbd08"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
          %20 = OpConstantNull %v3int
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_1bbd08 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %20 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %20 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %v4float
-         %24 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_1bbd08
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %textureStore_1bbd08
-         %29 = OpFunctionCall %void %tint_symbol_2 %11
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_1bbd08
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_1bbd08
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_1bbd08
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_1bbd08
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.spvasm
index 6f3cf7b..320d4a9 100644
--- a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_1c02e7 "textureStore_1c02e7"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
@@ -44,34 +43,33 @@
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
       %v4int = OpTypeVector %int 4
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_1c02e7 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %22 %24
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %25
-%tint_symbol = OpFunctionParameter %v4float
-         %28 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %25
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_1c02e7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureStore_1c02e7
-         %33 = OpFunctionCall %void %tint_symbol_2 %12
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_1c02e7
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_1c02e7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_1c02e7
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_1c02e7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.spvasm
index bde9762..ac3fcad 100644
--- a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_22d955 "textureStore_22d955"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -45,34 +44,33 @@
          %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
      %v4uint = OpTypeVector %uint 4
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_22d955 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %23 %25
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %26
-%tint_symbol = OpFunctionParameter %v4float
-         %29 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_22d955
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureStore_22d955
-         %34 = OpFunctionCall %void %tint_symbol_2 %12
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_22d955
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_22d955
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_22d955
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_22d955
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.spvasm
index ba254cc..4040d99 100644
--- a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_26bf70 "textureStore_26bf70"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,34 +42,33 @@
          %21 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
          %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_26bf70 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %v4float
-         %27 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_26bf70
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureStore_26bf70
-         %32 = OpFunctionCall %void %tint_symbol_2 %12
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_26bf70
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_26bf70
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_26bf70
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_26bf70
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.spvasm
index 3c77ab2..1c76893 100644
--- a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.spvasm
@@ -1,76 +1,74 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_2796b4 "textureStore_2796b4"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
          %20 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
          %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_2796b4 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %20 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_2796b4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_2796b4
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2796b4
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_2796b4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_2796b4
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_2796b4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.spvasm
index ae33248..04401372 100644
--- a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_2ac6c7 "textureStore_2ac6c7"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_2ac6c7 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %int_1 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %int_1 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %v4float
-         %23 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %20
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_2ac6c7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %textureStore_2ac6c7
-         %28 = OpFunctionCall %void %tint_symbol_2 %11
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_2ac6c7
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_2ac6c7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2ac6c7
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_2ac6c7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.spvasm
index 01255a8..24d2ecd 100644
--- a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.spvasm
@@ -1,76 +1,74 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_2eb2a4 "textureStore_2eb2a4"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
          %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_2eb2a4 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %int_1 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_2eb2a4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_2eb2a4
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2eb2a4
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_2eb2a4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_2eb2a4
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_2eb2a4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.spvasm
index e517f8c..d529e14 100644
--- a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_2ed2a3 "textureStore_2ed2a3"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_2ed2a3 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %int_1 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %int_1 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %v4float
-         %23 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %20
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_2ed2a3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %textureStore_2ed2a3
-         %28 = OpFunctionCall %void %tint_symbol_2 %11
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_2ed2a3
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_2ed2a3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2ed2a3
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_2ed2a3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/31745b.wgsl.expected.spvasm
index d2216e9..d401580 100644
--- a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/31745b.wgsl.expected.spvasm
@@ -1,76 +1,74 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_31745b "textureStore_31745b"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
          %20 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
          %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_31745b = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %20 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_31745b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_31745b
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_31745b
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_31745b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_31745b
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_31745b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.spvasm
index 9c38831..0990ac0 100644
--- a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_32f368 "textureStore_32f368"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,34 +41,33 @@
       %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_32f368 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %22 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %22 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_32f368
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_32f368
-         %31 = OpFunctionCall %void %tint_symbol_2 %11
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_32f368
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_32f368
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_32f368
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_32f368
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/331aee.wgsl.expected.spvasm
index d6ba273..e27f41a 100644
--- a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/331aee.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_331aee "textureStore_331aee"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
          %20 = OpConstantNull %v3int
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_331aee = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %20 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %20 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %v4float
-         %24 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_331aee
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %textureStore_331aee
-         %29 = OpFunctionCall %void %tint_symbol_2 %11
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_331aee
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_331aee
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_331aee
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_331aee
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.spvasm
index 1a7da57..5bf4b4a 100644
--- a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_38e8d7 "textureStore_38e8d7"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -45,34 +44,33 @@
          %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
      %v4uint = OpTypeVector %uint 4
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_38e8d7 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %23 %25
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %26
-%tint_symbol = OpFunctionParameter %v4float
-         %29 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_38e8d7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureStore_38e8d7
-         %34 = OpFunctionCall %void %tint_symbol_2 %12
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_38e8d7
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_38e8d7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_38e8d7
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_38e8d7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.spvasm
index 04f98b5..2208840 100644
--- a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_3a52ac "textureStore_3a52ac"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
@@ -44,34 +43,33 @@
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
       %v4int = OpTypeVector %int 4
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_3a52ac = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %22 %24
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %25
-%tint_symbol = OpFunctionParameter %v4float
-         %28 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %25
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_3a52ac
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureStore_3a52ac
-         %33 = OpFunctionCall %void %tint_symbol_2 %12
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_3a52ac
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_3a52ac
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_3a52ac
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_3a52ac
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.spvasm
index 4c4f9d4..042c17d 100644
--- a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_3bb7a1 "textureStore_3bb7a1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,34 +41,33 @@
       %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_3bb7a1 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %22 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %22 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_3bb7a1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_3bb7a1
-         %31 = OpFunctionCall %void %tint_symbol_2 %11
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_3bb7a1
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_3bb7a1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_3bb7a1
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_3bb7a1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.spvasm
index fcd3c0c..617f660 100644
--- a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.spvasm
@@ -1,76 +1,74 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_3bec15 "textureStore_3bec15"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
          %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_3bec15 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %int_1 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_3bec15
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_3bec15
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_3bec15
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_3bec15
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_3bec15
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_3bec15
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.spvasm
index 68e35fc..f90cc46 100644
--- a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_441ba8 "textureStore_441ba8"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,34 +42,33 @@
          %21 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
          %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_441ba8 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %v4float
-         %27 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_441ba8
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureStore_441ba8
-         %32 = OpFunctionCall %void %tint_symbol_2 %12
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_441ba8
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_441ba8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_441ba8
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_441ba8
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.spvasm
index bc26ddc..22d3d46 100644
--- a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_4fc057 "textureStore_4fc057"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,34 +41,33 @@
       %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_4fc057 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %22 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %22 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_4fc057
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_4fc057
-         %31 = OpFunctionCall %void %tint_symbol_2 %11
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_4fc057
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_4fc057
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_4fc057
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_4fc057
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.spvasm
index fb58460..83dac17 100644
--- a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.spvasm
@@ -1,75 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_5a2f8f "textureStore_5a2f8f"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
          %21 = OpConstantNull %v4int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_5a2f8f = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %int_1 %21
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %22
-%tint_symbol = OpFunctionParameter %v4float
-         %25 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%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
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureStore_5a2f8f
-         %30 = OpFunctionCall %void %tint_symbol_2 %12
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_5a2f8f
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_5a2f8f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_5a2f8f
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_5a2f8f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.spvasm
index c05e714..fb1d691 100644
--- a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_60975f "textureStore_60975f"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,34 +41,33 @@
       %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_60975f = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %22 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %22 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_60975f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_60975f
-         %31 = OpFunctionCall %void %tint_symbol_2 %11
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_60975f
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_60975f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_60975f
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_60975f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.spvasm
index 6ba0216..420e450 100644
--- a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_682fd6 "textureStore_682fd6"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,34 +43,33 @@
          %21 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
          %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_682fd6 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %v4float
-         %27 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_682fd6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureStore_682fd6
-         %32 = OpFunctionCall %void %tint_symbol_2 %12
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_682fd6
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_682fd6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_682fd6
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_682fd6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.spvasm
index d373c99..1c3b265 100644
--- a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_6b75c3 "textureStore_6b75c3"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_6b75c3 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %int_1 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %int_1 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %v4float
-         %23 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %20
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_6b75c3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %textureStore_6b75c3
-         %28 = OpFunctionCall %void %tint_symbol_2 %11
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_6b75c3
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_6b75c3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_6b75c3
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_6b75c3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.spvasm
index 87ed017..f5112ee 100644
--- a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.spvasm
@@ -1,75 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_6b80d2 "textureStore_6b80d2"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
          %21 = OpConstantNull %v4int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_6b80d2 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %int_1 %21
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %22
-%tint_symbol = OpFunctionParameter %v4float
-         %25 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%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
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureStore_6b80d2
-         %30 = OpFunctionCall %void %tint_symbol_2 %12
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_6b80d2
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_6b80d2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_6b80d2
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_6b80d2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.spvasm
index 30fbe9b..8e80a59 100644
--- a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_6cff2e "textureStore_6cff2e"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,34 +42,33 @@
          %21 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
          %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_6cff2e = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %v4float
-         %27 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_6cff2e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureStore_6cff2e
-         %32 = OpFunctionCall %void %tint_symbol_2 %12
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_6cff2e
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_6cff2e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_6cff2e
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_6cff2e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.spvasm
index 6fd25b4..d1101ca 100644
--- a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_6da692 "textureStore_6da692"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -45,34 +44,33 @@
          %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
      %v4uint = OpTypeVector %uint 4
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_6da692 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %23 %25
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %26
-%tint_symbol = OpFunctionParameter %v4float
-         %29 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_6da692
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureStore_6da692
-         %34 = OpFunctionCall %void %tint_symbol_2 %12
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_6da692
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_6da692
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_6da692
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_6da692
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/731349.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/731349.wgsl.expected.spvasm
index 58b625f..8649d67 100644
--- a/test/intrinsics/gen/textureStore/731349.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/731349.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_731349 "textureStore_731349"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
          %20 = OpConstantNull %v2int
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_731349 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %20 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %20 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %v4float
-         %24 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_731349
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %textureStore_731349
-         %29 = OpFunctionCall %void %tint_symbol_2 %11
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_731349
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_731349
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_731349
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_731349
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/752da6.wgsl.expected.spvasm
index 6aa38f4..35b57fb 100644
--- a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/752da6.wgsl.expected.spvasm
@@ -1,75 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_752da6 "textureStore_752da6"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
          %20 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
          %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_752da6 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %20 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_752da6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_752da6
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_752da6
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_752da6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_752da6
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_752da6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.spvasm
index 22b93d4..7af51d4 100644
--- a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_77c0ae "textureStore_77c0ae"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,34 +42,33 @@
          %21 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
          %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_77c0ae = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %v4float
-         %27 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_77c0ae
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureStore_77c0ae
-         %32 = OpFunctionCall %void %tint_symbol_2 %12
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_77c0ae
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_77c0ae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_77c0ae
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_77c0ae
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.spvasm
index 47d10a8..5ad44d2 100644
--- a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_7cec8d "textureStore_7cec8d"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
@@ -44,34 +43,33 @@
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
       %v4int = OpTypeVector %int 4
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_7cec8d = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %22 %24
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %25
-%tint_symbol = OpFunctionParameter %v4float
-         %28 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %25
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_7cec8d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureStore_7cec8d
-         %33 = OpFunctionCall %void %tint_symbol_2 %12
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_7cec8d
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_7cec8d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_7cec8d
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_7cec8d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.spvasm
index d8b70fe..d1ac585 100644
--- a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_7f7fae "textureStore_7f7fae"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_7f7fae = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %int_1 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %int_1 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %v4float
-         %23 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %20
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_7f7fae
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %textureStore_7f7fae
-         %28 = OpFunctionCall %void %tint_symbol_2 %11
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_7f7fae
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_7f7fae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_7f7fae
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_7f7fae
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/804942.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/804942.wgsl.expected.spvasm
index f7b77bb..dc2c206 100644
--- a/test/intrinsics/gen/textureStore/804942.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/804942.wgsl.expected.spvasm
@@ -1,75 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_804942 "textureStore_804942"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
          %20 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
          %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_804942 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %20 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_804942
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_804942
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_804942
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_804942
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_804942
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_804942
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/805dae.wgsl.expected.spvasm
index 6a2d386..55b1d44 100644
--- a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/805dae.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_805dae "textureStore_805dae"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
          %20 = OpConstantNull %v2int
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_805dae = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %20 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %20 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %v4float
-         %24 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_805dae
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %textureStore_805dae
-         %29 = OpFunctionCall %void %tint_symbol_2 %11
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_805dae
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_805dae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_805dae
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_805dae
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.spvasm
index 7165fd8..666ea11 100644
--- a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.spvasm
@@ -1,77 +1,75 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_83bcc1 "textureStore_83bcc1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
          %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_83bcc1 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %int_1 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_83bcc1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_83bcc1
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_83bcc1
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_83bcc1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_83bcc1
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_83bcc1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/872747.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/872747.wgsl.expected.spvasm
index a6fa3f3..844f37d 100644
--- a/test/intrinsics/gen/textureStore/872747.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/872747.wgsl.expected.spvasm
@@ -1,74 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_872747 "textureStore_872747"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_872747 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %int_1 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %int_1 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %v4float
-         %23 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %20
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_872747
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %textureStore_872747
-         %28 = OpFunctionCall %void %tint_symbol_2 %11
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_872747
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_872747
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_872747
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_872747
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.spvasm
index 5db1630..000407d 100644
--- a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_8e0479 "textureStore_8e0479"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -45,34 +44,33 @@
          %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
      %v4uint = OpTypeVector %uint 4
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_8e0479 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %23 %25
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %26
-%tint_symbol = OpFunctionParameter %v4float
-         %29 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_8e0479
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureStore_8e0479
-         %34 = OpFunctionCall %void %tint_symbol_2 %12
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_8e0479
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_8e0479
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_8e0479
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_8e0479
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.spvasm
index 4380aac..c903b5c 100644
--- a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.spvasm
@@ -1,75 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_8f71a1 "textureStore_8f71a1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
          %20 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
          %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_8f71a1 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %20 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_8f71a1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_8f71a1
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8f71a1
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_8f71a1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_8f71a1
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_8f71a1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/969534.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/969534.wgsl.expected.spvasm
index bd8a1cc..aab85aa 100644
--- a/test/intrinsics/gen/textureStore/969534.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/969534.wgsl.expected.spvasm
@@ -1,75 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_969534 "textureStore_969534"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
          %21 = OpConstantNull %v4int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_969534 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %int_1 %21
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %22
-%tint_symbol = OpFunctionParameter %v4float
-         %25 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%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
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureStore_969534
-         %30 = OpFunctionCall %void %tint_symbol_2 %12
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_969534
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_969534
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_969534
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_969534
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.spvasm
index 65be593..6ca3785 100644
--- a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.spvasm
@@ -1,75 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_9a3ecc "textureStore_9a3ecc"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
          %20 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
          %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_9a3ecc = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %20 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_9a3ecc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_9a3ecc
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_9a3ecc
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_9a3ecc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_9a3ecc
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_9a3ecc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.spvasm
index 52c2c66..3b2ba58 100644
--- a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_9d9cd5 "textureStore_9d9cd5"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,34 +41,33 @@
       %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_9d9cd5 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %22 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %22 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_9d9cd5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_9d9cd5
-         %31 = OpFunctionCall %void %tint_symbol_2 %11
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_9d9cd5
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_9d9cd5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_9d9cd5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_9d9cd5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.spvasm
index 660a80b..5293d47 100644
--- a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.spvasm
@@ -1,75 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_9e3ec5 "textureStore_9e3ec5"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
          %20 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
          %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_9e3ec5 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %20 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_9e3ec5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_9e3ec5
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_9e3ec5
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_9e3ec5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_9e3ec5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_9e3ec5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.spvasm
index 2df2253..e18042c 100644
--- a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_ac67aa "textureStore_ac67aa"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,34 +43,33 @@
          %21 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
          %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_ac67aa = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %v4float
-         %27 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_ac67aa
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureStore_ac67aa
-         %32 = OpFunctionCall %void %tint_symbol_2 %12
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_ac67aa
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_ac67aa
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_ac67aa
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_ac67aa
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.spvasm
index e8ce299..659af46 100644
--- a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.spvasm
@@ -1,75 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_b706b1 "textureStore_b706b1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
          %20 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
          %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_b706b1 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %20 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_b706b1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_b706b1
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_b706b1
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_b706b1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_b706b1
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_b706b1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.spvasm
index 488c2b5..7a21498 100644
--- a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.spvasm
@@ -1,75 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_bbcb7f "textureStore_bbcb7f"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
          %20 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
          %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_bbcb7f = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %20 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_bbcb7f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_bbcb7f
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_bbcb7f
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_bbcb7f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_bbcb7f
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_bbcb7f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.spvasm
index 0ad6a57..0a47c20 100644
--- a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_be6e30 "textureStore_be6e30"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
          %20 = OpConstantNull %v2int
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_be6e30 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %20 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %20 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %v4float
-         %24 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_be6e30
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %textureStore_be6e30
-         %29 = OpFunctionCall %void %tint_symbol_2 %11
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_be6e30
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_be6e30
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_be6e30
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_be6e30
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.spvasm
index ad9491a..34825d5 100644
--- a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.spvasm
@@ -1,75 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_bf775c "textureStore_bf775c"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
          %21 = OpConstantNull %v4int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_bf775c = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %int_1 %21
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %22
-%tint_symbol = OpFunctionParameter %v4float
-         %25 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%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
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureStore_bf775c
-         %30 = OpFunctionCall %void %tint_symbol_2 %12
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_bf775c
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_bf775c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_bf775c
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_bf775c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.spvasm
index 88bfeb1..415c2a8 100644
--- a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_c5af1e "textureStore_c5af1e"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
          %20 = OpConstantNull %v3int
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_c5af1e = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %20 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %20 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %v4float
-         %24 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_c5af1e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %textureStore_c5af1e
-         %29 = OpFunctionCall %void %tint_symbol_2 %11
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_c5af1e
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_c5af1e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_c5af1e
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_c5af1e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.spvasm
index e93580e..711b604 100644
--- a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_c863be "textureStore_c863be"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,34 +42,33 @@
       %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_c863be = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %22 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %22 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_c863be
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_c863be
-         %31 = OpFunctionCall %void %tint_symbol_2 %11
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_c863be
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_c863be
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_c863be
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_c863be
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.spvasm
index d9b7315..b2c5b3a 100644
--- a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.spvasm
@@ -1,76 +1,74 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_d73b5c "textureStore_d73b5c"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
          %21 = OpConstantNull %v4int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_d73b5c = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %int_1 %21
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %22
-%tint_symbol = OpFunctionParameter %v4float
-         %25 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%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
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureStore_d73b5c
-         %30 = OpFunctionCall %void %tint_symbol_2 %12
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_d73b5c
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_d73b5c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_d73b5c
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_d73b5c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.spvasm
index 7dacd3f..205afdd 100644
--- a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_dd7d81 "textureStore_dd7d81"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
          %20 = OpConstantNull %v3int
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_dd7d81 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %20 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %20 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %v4float
-         %24 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_dd7d81
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %textureStore_dd7d81
-         %29 = OpFunctionCall %void %tint_symbol_2 %11
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_dd7d81
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_dd7d81
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_dd7d81
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_dd7d81
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.spvasm
index 918c322..02a9709 100644
--- a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_dde364 "textureStore_dde364"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -46,34 +45,33 @@
          %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
      %v4uint = OpTypeVector %uint 4
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_dde364 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %23 %25
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %26
-%tint_symbol = OpFunctionParameter %v4float
-         %29 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_dde364
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureStore_dde364
-         %34 = OpFunctionCall %void %tint_symbol_2 %12
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_dde364
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_dde364
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_dde364
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_dde364
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.spvasm
index db9ea1d..4e0f0a3 100644
--- a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_e885e8 "textureStore_e885e8"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_e885e8 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %int_1 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %int_1 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %v4float
-         %23 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %20
+         %22 = OpLabel
+         %23 = OpFunctionCall %void %textureStore_e885e8
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %textureStore_e885e8
-         %28 = OpFunctionCall %void %tint_symbol_2 %11
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_e885e8
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_e885e8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_e885e8
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_e885e8
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.spvasm
index a33b490..8e0f51a 100644
--- a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.spvasm
@@ -1,73 +1,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_eb702f "textureStore_eb702f"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
          %20 = OpConstantNull %v3int
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_eb702f = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %20 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %20 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %v4float
-         %24 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_eb702f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %textureStore_eb702f
-         %29 = OpFunctionCall %void %tint_symbol_2 %11
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_eb702f
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_eb702f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_eb702f
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_eb702f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.spvasm
index fec7f88..fd0eaa0 100644
--- a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.spvasm
@@ -1,75 +1,73 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_eb78b9 "textureStore_eb78b9"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
          %20 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
          %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_eb78b9 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %20 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_eb78b9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_eb78b9
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_eb78b9
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_eb78b9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_eb78b9
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_eb78b9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.spvasm
index 5a8e520..3a82903 100644
--- a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.spvasm
@@ -1,74 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_ee6acc "textureStore_ee6acc"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
          %20 = OpConstantNull %v3int
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_ee6acc = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
-               OpImageWrite %17 %20 %11
+         %17 = OpLoad %11 %arg_0
+               OpImageWrite %17 %20 %5
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %v4float
-         %24 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %textureStore_ee6acc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %textureStore_ee6acc
-         %29 = OpFunctionCall %void %tint_symbol_2 %11
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_ee6acc
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_ee6acc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_ee6acc
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_ee6acc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.spvasm
index 0d35fe8..1398642 100644
--- a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_ef9f2f "textureStore_ef9f2f"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,34 +42,33 @@
          %21 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
          %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_ef9f2f = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %v4float
-         %27 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_ef9f2f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureStore_ef9f2f
-         %32 = OpFunctionCall %void %tint_symbol_2 %12
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_ef9f2f
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_ef9f2f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_ef9f2f
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_ef9f2f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.spvasm
index 382a8c1..9ac9d9f 100644
--- a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_f8dead "textureStore_f8dead"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,34 +42,33 @@
          %21 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
          %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_f8dead = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %v4float
-         %27 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_f8dead
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureStore_f8dead
-         %32 = OpFunctionCall %void %tint_symbol_2 %12
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_f8dead
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_f8dead
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_f8dead
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_f8dead
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.spvasm
index af3adfc..525247c 100644
--- a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_f9be83 "textureStore_f9be83"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
@@ -45,34 +44,33 @@
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
       %v4int = OpTypeVector %int 4
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_f9be83 = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %22 %24
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %25
-%tint_symbol = OpFunctionParameter %v4float
-         %28 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %25
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_f9be83
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureStore_f9be83
-         %33 = OpFunctionCall %void %tint_symbol_2 %12
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_f9be83
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_f9be83
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_f9be83
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_f9be83
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.spvasm
index 414eb1c..9a0f947 100644
--- a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.spvasm
@@ -1,76 +1,74 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_fb9a8f "textureStore_fb9a8f"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
          %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_fb9a8f = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %int_1 %22
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %v4float
-         %26 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %23
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureStore_fb9a8f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureStore_fb9a8f
-         %31 = OpFunctionCall %void %tint_symbol_2 %12
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_fb9a8f
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_fb9a8f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_fb9a8f
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_fb9a8f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.spvasm
index 3ac4b4d..a037be9 100644
--- a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_fbf53f "textureStore_fbf53f"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-          %7 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = 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
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
@@ -44,34 +43,33 @@
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
       %v4int = OpTypeVector %int 4
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_fbf53f = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %22 %24
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %25
-%tint_symbol = OpFunctionParameter %v4float
-         %28 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %25
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_fbf53f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureStore_fbf53f
-         %33 = OpFunctionCall %void %tint_symbol_2 %12
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_fbf53f
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_fbf53f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_fbf53f
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_fbf53f
                OpReturn
                OpFunctionEnd